我有一个喜欢
的jsonvar obj={
"address":{
"addlin1":"",
"addlin2":""
},
"name":"sam",
"score":[{"maths":"ten",
"science":"two",
"pass":false
}]
}
现在,当Iam尝试修改json iam时,尝试一个数组变量并将json传递到上面就像
var data=JSON.parse(obj);
var json={};
json['name']=data['name'];
json['address']={};
json['address']['addressline1']=data['address']['addlin1'];
json['address']['addressline2']=data['address']['addlin2'];
json['marks']={};
json['maths']=data['score']['maths'];
对于姓名和地址,我能够像我期待的那样形成json。但是对于标记我无法。可能在obj json得分值在[]
所以,当我以这种方式控制json时,
"name":"sam",
"address":{
"addresslin1":"",
"addresslin2":""
},
"score":{}
}
那么我怎样才能读取[]数组中的值。
有人能帮助我吗? 感谢
答案 0 :(得分:3)
json['maths']=data['score'][0]['maths'];
如果你不确定数据['得分']是否有任何元素,你可以在阅读数学键之前检查:
if (data['score'].length) {
json['maths']=data['score'][0]['maths'];
}
答案 1 :(得分:0)
data['score']
是一个数组,因此您无法像那样读取它
json['maths']=data['score']['maths'];
你必须这样读:
json['maths'] = data['score'][0].maths;
此外,obj
不是JSON,而是JavaScript对象。你可以直接使用它。
json['maths'] = obj['score'][0].maths;
JSON是一个字符串,如下所示:
JSON.stringify(obj)
var json = "{"address":{"addlin1":"","addlin2":""},"name":"sam","score":[{"maths":"ten","science":"two","pass":false}]}";
答案 2 :(得分:0)
创建另一个json2以包含得分数据,然后分配给json。
例如:
var json={};
json2 = {}
json2[0] = 1;
json2[1] = 2;
json[0] = json2;