Javascript 如何读取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

我有一个类似json的

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