如何读取json数组中的值

时间:2016-10-06 19:09:44

标签: javascript json node.js

我有一个喜欢

的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":{}
  }

那么我怎样才能读取[]数组中的值。

有人能帮助我吗? 感谢

3 个答案:

答案 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;