首页 新闻 会员 周边

jquery怎么解析[{},{}]格式数据

0
悬赏园豆:10 [已解决问题] 解决于 2018-01-26 16:03

s获取到"[{NAME=王新成, USER_ID=201309040047042, SCORE=0.5, PASS_DATE=2011-12-10, QUARTERS_ID=2013062115276760}, {NAME=张宁, USER_ID=201309040047068, SCORE=0.3, PASS_DATE=2010-03-19, QUARTERS_ID=2013062115276762}]";

我要如何解析,并且遍历。

从后台获取到这种格式数据,我需要动态生成<tr><td>把数据加进去,所以首先要解析并且遍历。

for(var i=0;i<json.length;i++){ 
for(var key in json){ 
alert(key+':'+json[i][key]); 

}  

这样好像遍历不出来。

这样也解析不出来  var obj = eval("("+json+")");

Tomdwannn的主页 Tomdwannn | 初学一级 | 园豆:114
提问于:2016-05-31 10:33
< >
分享
最佳答案
0

你这个看着像是java里List<Map>直接打印而不是转成JsonArray出来的数据

写了一段js代码,如果值里没有=号可以完美处理

 1 var src= "[{NAME=王新成, USER_ID=201309040047042, SCORE=0.5, PASS_DATE=2011-12-10, QUARTERS_ID=2013062115276760}, {NAME=张宁, USER_ID=201309040047068, SCORE=0.3, PASS_DATE=2010-03-19, QUARTERS_ID=2013062115276762}]";
 2 var rObj = /{([^=]+=[^,]+),\s+([^={]+=[^,}]+)*/g
 3 var m = src.match(r)
 4 var rNvp = /([^,={\s]+=[^,]+)/g
 5 var list = [];
 6 for(var i=0;i<m.length;i++){
 7     var m2 = m[i].match(rNvp);
 8     var o={};
 9     for(j = 0;j<m2.length;j++){
10         var arr = m2[j].split("=");
11         o[arr[0]] = arr[1];
12     }
13     list.push(o);
14 }
15 console.log(list)

 

收获园豆:6
图图图图 | 菜鸟二级 |园豆:220 | 2016-06-05 16:35
其他回答(6)
0

字符串要加'',并且带[]的不用加(),用eval(),可以用firebug,或chrome的控制台调试下

也可以用JSON.parse(json);试试

收获园豆:2
小小高 | 园豆:1095 (小虾三级) | 2016-05-31 10:39
0

如果你的数据是"NAME=王新成"这样的,不是这样的:NAME:"王新成" 或者 NAME="王新成"

那就不是json格式数据,也不是js对象。就只能自己字符串分割或者正则比配了。

收获园豆:2
czd890 | 园豆:14412 (专家六级) | 2016-05-31 10:41

我这个应该不是Json了,后台传到前端的数据是List<Map<Object,String>> lists这种格式,前端显示 可以直接${lists.Name}..  或者我${lists.Name}取值?

支持(0) 反对(0) Tomdwannn | 园豆:114 (初学一级) | 2016-05-31 10:53

@Tomdwannn: 找后端程序员修改序列化代码,让他序列化为json。或者你自己写正则匹配吧

支持(0) 反对(0) czd890 | 园豆:14412 (专家六级) | 2016-05-31 11:09
0

把=替换成:就可以当做json解析了

刘宏玺 | 园豆:14020 (专家六级) | 2016-05-31 10:59

 唉,答错了,不能解析,你的这个格式真是奇葩,手动解析吧

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-05-31 11:01
0

数据格式有问题

九九哥 | 园豆:182 (初学一级) | 2016-05-31 14:17
0

如果是C#

前提引用JsonConvet的dll

首先可以定义实体类字段分别为name,USER_ID,SCORE,PASS_DATE,QUARTERS_ID

实体类名  变量=JsonConvert.SerializeObject<json格式>(实体类);  (记不清是DeserializeObject还是SerializeObject了)

这个是针对于单个的[{NAME=王新成, USER_ID=201309040047042, SCORE=0.5, PASS_DATE=2011-12-10, QUARTERS_ID=2013062115276760}],你的问题差不多等同

 

 

或者看http://blog.csdn.net/coolszy/article/details/8606803

如此低调的男人 | 园豆:842 (小虾三级) | 2016-06-01 16:55
0

楼主,这个问题你最后怎么解决的?

java小白白 | 园豆:202 (菜鸟二级) | 2017-09-29 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册