起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1475|回复: 6

[结贴] 如何取得 baasdata发回来的jsonTable的值

[复制链接]

40

主题

159

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
发表于 2017-1-23 10:13:38 | 显示全部楼层 |阅读模式
我在服务端发回的从数据库查询到的结果,是用JsonDataTable的方式返回的,代码是:
public static JObject getUserBaseData(JObject paramsObject)
        {
            int userID = int.Parse(paramsObject["UserID"].ToString());//参数处理

            //应在这处理数据库访问
            DataTable userTable = new data.User().GetUserBaseDataByUserID(userID).Tables[0];

            JObject jres = JsonDataTable.DataTableToJson(userTable, "UserID", null, 0, 0);
            return jres;

        }
在Wex5调试平台的代码中加入debugger,已经看到了返回的值了,见图片:

但是客户端不知道怎么取回这些值,我试了代码:
Baas.sendRequest({
                                       "url" : "/justep/user",
                                       "action" : "getUserBaseData",
                                       "async" : false,
                                       "params" : {
                                               UserID : userID
                                       },
                                       "success" : function(basedata) {

                                           user.userid = basedata.userTable[0].UserID;
                                           user.name = basedata.userTable[0].FullName;
                                           user.cityid = basedata.userTable[0].CityID;
                                           user.categoryid = basedata.userTable[0].CategoryID;
                                   },
                                    error : function() {
                                           throw justep.Error.create("加载数据失败");
                                    }
                              });
                    }     


不行,后来又用:
                                           user.userid = basedata['userTable']['UserID'];
                                           user.name = basedata['userTable']['FullName'];
                                           user.cityid = basedata['userTable']['CityID'];
                                           user.categoryid = basedata['userTable']['CategoryID'];

也不行,请问如何才能取得返回的值?
1.jpg

40

主题

159

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
 楼主| 发表于 2017-1-23 10:52:55 | 显示全部楼层
其实返回的数据格式完全是按照:http://doc.wex5.com/?p=4932 中的数据格式,但是怎么取出来呢?文档中没有讲。
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-1-23 13:39:13 | 显示全部楼层
zjroland 发表于 2017-1-23 10:52
其实返回的数据格式完全是按照:http://doc.wex5.com/?p=4932 中的数据格式,但是怎么取出来呢?文档中没有 ...

应该是user.userid = basedata.row.val('UserID');这样吧
回复 支持 反对

使用道具 举报

40

主题

159

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
 楼主| 发表于 2017-1-23 16:08:33 | 显示全部楼层
不行,按照user.userid = basedata.row.val('UserID');的写法 显示错误:Cannot read propert 'val'of undefined
回复 支持 反对

使用道具 举报

40

主题

159

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
 楼主| 发表于 2017-1-23 16:26:10 | 显示全部楼层
debugger中,已经能看到返回的数据了:

Local
  basedata:Object
    @type:"table"
    rows:Array[1]
       CategoryID:Object Value:2
       CityID    bject  Value: 1
        FullName: Object  Value:张晓晨
       UserId : Object    Value: 1
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36180
发表于 2017-1-24 13:47:05 | 显示全部楼层
baasData获取数据,可以用data.getValue()获取row上的val()方法获取
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

40

主题

159

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
 楼主| 发表于 2017-2-10 11:46:03 | 显示全部楼层
呵呵,我自己摸索了很久,终于有了正确的答案,在这里与大家共享,应该写成:
"success" : function(basedata) {
                                           var user = {};
                                           user.userid = basedata.rows[0]['UserID'].value;
                                           user.name = basedata.rows[0]['FullName'].value;
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-28 22:45 , Processed in 0.109072 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表