Javascript 如何读取json数组中的值
我有一个类似json的Javascript 如何读取json数组中的值,javascript,json,node.js,Javascript,Json,Node.js,我有一个类似json的 var obj={ "address":{ "addlin1":"", "addlin2":"" }, "name":"sam", "score":[{"maths":"ten", "science":"two", "pass":false }] } 现在,当Iam尝试修改json时,Iam尝试使用数组变量并将上面的json传递给类似的对象 var
var 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":{}
}
那么,如何读取[]数组中的值呢
有人能帮我吗
谢谢
如果您不确定数据['score']是否有任何元素,您可以在阅读数学键之前进行检查:
if (data['score'].length) {
json['maths']=data['score'][0]['maths'];
}
数据['score']
是一个数组,所以不能这样读取它
json['maths']=data['score']['maths'];
你必须这样读:
json['maths'] = data['score'][0].maths;
JSON.stringify(obj)
var json = "{"address":{"addlin1":"","addlin2":""},"name":"sam","score":[{"maths":"ten","science":"two","pass":false}]}";
另外,obj
不是JSON,而是JavaScript对象。你可以直接使用它
json['maths'] = obj['score'][0].maths;
JSON是一个字符串,如下所示:
json['maths'] = data['score'][0].maths;
JSON.stringify(obj)
var json = "{"address":{"addlin1":"","addlin2":""},"name":"sam","score":[{"maths":"ten","science":"two","pass":false}]}";
创建另一个json2以包含分数数据,然后分配给json 例如:
var json={};
json2 = {}
json2[0] = 1;
json2[1] = 2;
json[0] = json2;
您就快到了-分数是根据您的第一位代码创建的数组,因此请访问分数数组中的第一个对象,然后按原样继续
score[0]。数学。如果您喜欢使用data.address.addlin1
obj
不是JSON,那么您也可以对javascript对象使用点表示法。。。这至少是你问题的一部分。直接使用obj
。