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

QQ登录

只需一步,快速开始

查看: 6917|回复: 9

[结贴] 嵌套json数据解析

[复制链接]

2

主题

13

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
发表于 2015-6-27 11:48:53 | 显示全部楼层 |阅读模式
{
"@type":"table","rows":[
{"shopid":"1","shopname":"711","position":"大连沙河口","shoplogo":"711.jpg","typedata":[
{"protypeid":"1","protypename":"生鲜","protypeimage":"10.png","shopid":"1","typeImageURL":""},
{"protypeid":"2","protypename":"零食","protypeimage":"13.png","shopid":"1","typeImageURL":""},
{"protypeid":"3","protypename":"进口食品","protypeimage":"14.png","shopid":"1","typeImageURL":""},
{"protypeid":"4","protypename":"水果","protypeimage":"16.png","shopid":"1","typeImageURL":""},
{"protypeid":"5","protypename":"肉类","protypeimage":"17.png","shopid":"1","typeImageURL":""},
{"protypeid":"6","protypename":"鸡蛋","protypeimage":"23.png","shopid":"1","typeImageURL":""}
]},
{"shopid":"2","shopname":"劳森","position":"大连甘井子","shoplogo":"laosen.jpg"},
{"shopid":"3","shopname":"快客","position":"大连高新园区","shoplogo":"711.jpg"}
],"userdata":{"sys.count":"4"}
}

Model.prototype.shopdataCustomRefresh = function(event){
                var shopData = this.comp('shopdata');
                var typeData = this.comp('protypedata');
                if(event.offset == 0){
                        $.getJSON(require.toUrl('./shopdata.json'), function(data) {
                                shopData.loadData(data, false);
                                $.each(data.rows, function(k,v){
                                        var typeList = v.typedata;
                                        if(typeof typeList === 'undefined'){
                                        }else {       
                                                typeData.loadData(typeList);
                                        }
                                });
                        });
}
为什么typeData数据不显示那?typeData用json假数据直接复制就好用,从json串中解析就不好用。
请指点一下。

2

主题

13

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
 楼主| 发表于 2015-6-30 19:32:09 | 显示全部楼层

就是参照这个写的json.
1.我问的是有嵌套的这种json格式怎么写。
比如我上面写的例子,店铺List中又包括了多种商品种类这样格式的JSON,格式怎么写?
2.将店铺信息赋值给一个DATA,商品种类信息赋值给另一个DATA。这两个DATA是有从属关系的。

{
"@type":"table","rows":[
{"shopid":"1","shopname":"711","position":"大连沙河口","shoplogo":"711.jpg","typedata":{"@type":"table","rows":[用这样的格式吗?重点是红字部分。
回复 支持 0 反对 1

使用道具 举报

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2015-6-29 08:54:24 | 显示全部楼层
data组件的loaddata方法是这样的
                                loadData : function(data, append, parent, index) {
                                        index = undefined === index?-1:index;
                                        var ret = [];
                                        if (data && ('table' == data['@type'] || $.isArray(data.rows))) {
加载到data组件中的json要有@type":"table"或"rows":[
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

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

使用道具 举报

2

主题

13

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
 楼主| 发表于 2015-6-29 22:12:04 | 显示全部楼层
zhaixin 发表于 2015-6-29 08:54
data组件的loaddata方法是这样的
                                loadData : function(data, append, parent, index) {
                                        index = u ...

上面这个typedata的json格式不对?应该怎么写那?
想要把typedata取出付给另个data。有什么简单的方法吗?
谢谢
回复 支持 反对

使用道具 举报

2

主题

13

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
 楼主| 发表于 2015-6-29 22:36:11 | 显示全部楼层
zhaixin 发表于 2015-6-29 08:54
data组件的loaddata方法是这样的
                                loadData : function(data, append, parent, index) {
                                        index = u ...

{
"@type":"table","rows":[
{"shopid":"1","shopname":"711","position":"大连沙河口","shoplogo":"711.jpg","typedata":{"@type":"table","rows":[
{"protypeid":"1","protypename":"生鲜","protypeimage":"10.png","shopid":"1","typeImageURL":""},
{"protypeid":"2","protypename":"零食","protypeimage":"13.png","shopid":"1","typeImageURL":""},
{"protypeid":"3","protypename":"进口食品","protypeimage":"14.png","shopid":"1","typeImageURL":""},
{"protypeid":"4","protypename":"水果","protypeimage":"16.png","shopid":"1","typeImageURL":""},
{"protypeid":"5","protypename":"肉类","protypeimage":"17.png","shopid":"1","typeImageURL":""},
{"protypeid":"6","protypename":"鸡蛋","protypeimage":"23.png","shopid":"1","typeImageURL":""}
]}},
{"shopid":"2","shopname":"劳森","position":"大连甘井子","shoplogo":"laosen.jpg","rows":[
{"protypeid":"1","protypename":"生鲜","protypeimage":"10.png","shopid":"2","typeImageURL":""},
{"protypeid":"2","protypename":"零食","protypeimage":"13.png","shopid":"2","typeImageURL":""}
]},
{"shopid":"3","shopname":"快客","position":"大连高新园区","shoplogo":"711.jpg","rows":[
{"protypeid":"1","protypename":"生鲜","protypeimage":"10.png","shopid":"3","typeImageURL":""},
{"protypeid":"2","protypename":"零食","protypeimage":"13.png","shopid":"3","typeImageURL":""},
{"protypeid":"3","protypename":"进口食品","protypeimage":"14.png","shopid":"3","typeImageURL":""},
{"protypeid":"4","protypename":"水果","protypeimage":"16.png","shopid":"3","typeImageURL":""},
{"protypeid":"5","protypename":"肉类","protypeimage":"17.png","shopid":"3","typeImageURL":""},
{"protypeid":"6","protypename":"鸡蛋","protypeimage":"23.png","shopid":"3","typeImageURL":""}
]}
],"userdata":{"sys.count":"4"}
}
json中的typedata改成了上面这个格式。
使用下面的方法将json中typedata的data,赋值L.10位置,但是还是没有显示数据
$.getJSON(require.toUrl('./shopdata.json'), function(data) {
                                $.each(data.rows, function(k,v) {
                                        $.each(v, function(m,n) {
                                                if(m=="typedata"){
                                                        alert(n);
L.10                                                        this.comp('protypedata').loadData(n, false);
                                                }
                                        });
                                });
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2015-6-30 16:12:06 | 显示全部楼层
data需要的json数据格式参考
http://wex5.com/cn/data-json-struct/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2015-7-1 15:40:27 | 显示全部楼层
对,是这样的格式
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

2

主题

13

帖子

30

积分

新手上路

Rank: 1

积分
30
QQ
 楼主| 发表于 2015-7-3 15:02:33 | 显示全部楼层
jishuang 发表于 2015-7-1 15:40
对,是这样的格式

但是取出后赋值,并没有显示出来
使用下面的方法将json中typedata的data,赋值L.10位置,但是还是没有显示数据
$.getJSON(require.toUrl('./shopdata.json'), function(data) {
                                $.each(data.rows, function(k,v) {
                                        $.each(v, function(m,n) {
                                                if(m=="typedata"){
                                                        alert(n);
L.10                                                        this.comp('protypedata').loadData(n, false);
                                                }
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2015-7-3 16:33:29 | 显示全部楼层
确认取出来的值是否正确
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

8

主题

32

帖子

58

积分

初级会员

Rank: 2

积分
58
QQ
发表于 2017-6-9 17:13:47 | 显示全部楼层
jishuang 发表于 2015-6-30 16:12
data需要的json数据格式参考
http://wex5.com/cn/data-json-struct/

页面404
可以给个没失效的地址么,好多页面都失效了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 12:29 , Processed in 0.058867 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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