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

QQ登录

只需一步,快速开始

查看: 1267|回复: 5

[结贴] data转成json出现问题

[复制链接]

4

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48
QQ
发表于 2016-7-6 12:17:39 | 显示全部楼层 |阅读模式
求指教:
data在转换成json时用的代码如下:
var bjData =this.comp("daituilistData").toJson(false,false,"fid",{
              format:'simple'
                          });
但是输出结果为:[object Object],[object Object]
我是新手,还请大大指教。
附加说明:我是通过data转换成json后直接调用ajax中的webservice方法回写数据库的。数据能正常回写,但JSON不对。

4

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48
QQ
 楼主| 发表于 2016-7-6 12:20:44 | 显示全部楼层
问题补充:
用这个也不行:
var bjData =this.comp("daituilistData").toJson(false,false,"fid",{
              format:'simple'
                          })['rows'];
输出结果也是:[object Object],[object Object]
回复 支持 反对

使用道具 举报

发表于 2016-7-6 14:49:21 | 显示全部楼层
toJson 方法只有一个参数啊!
你怎么定义了4个参数??
this.comp("daituilistData").toJson({format:'simple'});
直接这样写!其他参数也是一样的!都是在这个json 对象中包括的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48
QQ
 楼主| 发表于 2016-7-6 15:08:08 | 显示全部楼层
谢谢版主。不过用this.comp("daituilistData").toJson({format:'simple'});得到的也是[object Object]。
我现在采用另外一种办法来处理。
var dai=this.comp("daituilistData");
                alert(this.comp("daituilistData").getCount());
                var rjson="[{";
                for ( var i = 0; i < dai.getCount(); i++) {
            var rowid = this.comp("daituilistData").getRowByID(i);
                        rjson+="\"制造指示号\":";
                        rjson+= "\""+dai.getValue('制造指示号',rowid)+"\",";
                        rjson+="\"现存数量\":";
                        rjson+= "\""+dai.getValue('现存数量',rowid)+"\",";
    }
                //rjson+="\"制造指示号\":";
                rjson+="}]";
                alert(rjson);
                var returninfo=this.comp("resultdata");
                returninfo.clear();
//                var bjData =this.comp("daituilistData").toJson(false,false,"fid",{
//              format:'simple'
//                          })['rows'];
//                var k=bjData.result;
                $.ajax({  
                         "type" : "post",
           "async" : false,
           "data": "args="+rjson,
           "url" :"http://192.168.0.5/test/test.asmx/testapp",
           "cache" : false,
           "dataType" : "jsonp",
           "jsonp": "callbackjsp",//服务端用于接收callback调用的function名的参数  
           "jsonpCallback":"successCallback",
                 success: function(json) {
                        //将结果存到页面的data中,并刷新显示到界面。
                         var str=json.result;
                         var strs= JSON.parse(str);
                         json={"@type" : "table","test" : {"idColumnName" : "fid","idColumnType" : "String", },"rows" :strs };
                         returninfo.loadData(json,false);
                         returninfo.refreshData();
                 },
                 error: function(x, e) {  
                     alert("错误:"+x.responseText);   
                 }
                });
用这种方法来处理,结果为:
1、json为正确的。但是for循环,一直停在第1行。我的data中一共有2行数据。
2、弹出的json正确,但是用webservice收下来后,却变成乱码了。[{"鍒堕€犳寚绀哄彿":"鍒堕€犳寚绀哄彿","鐜板瓨鏁伴噺":"100","鍒堕€犳寚绀哄彿":"鍒堕€犳寚绀哄彿","鐜板瓨鏁伴噺":"100",}]
3、我在webservice中作了编码转换,但是会报不是base64码。然后又用了net自带的作了转换: byte[] buffer = Encoding.UTF8.GetBytes(args);
           newarg = Encoding.GetEncoding("utf-8").GetString(buffer);出来的结果还是乱码。
回复 支持 反对

使用道具 举报

发表于 2016-7-6 16:51:26 | 显示全部楼层
liqing_0301 发表于 2016-7-6 15:08
谢谢版主。不过用this.comp("daituilistData").toJson({format:'simple'});得到的也是[object Object]。
我 ...

自己调试看下区别吧!!,获取的本来就是个json对象!然后自己再通过js获取对象的数据
可以通过data.toJson({format:'simple'}).rows 获取这个数组,然后循环分别取值!
4$1WZI6Y_GVM~FVCKYI%_UH.png
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

10

帖子

48

积分

新手上路

Rank: 1

积分
48
QQ
 楼主| 发表于 2016-7-6 17:24:20 | 显示全部楼层
谢谢版主,麻烦结贴吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 00:09 , Processed in 0.061372 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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