2016-10-06 2 views
1

У меня есть JSON, какКак читать значения внутри массива JSon

var obj={ 
"address":{ 
     "addlin1":"", 
     "addlin2":"" 
     }, 
"name":"sam", 
"score":[{"maths":"ten", 
      "science":"two", 
      "pass":false 
      }] 
} 

Теперь, когда Iam пытается модифицировать JSON РМКО попробовать переменную массива и переходя выше 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

Youre почти там - счет является массив в соответствии с вашим первым битом кода, чтобы получить доступ к первому объекту в массиве баллов, а затем продолжить, как вы 'оценка [0] .maths '. Вы можете использовать точечную нотацию с объектами javascript, если вы предпочитаете строки 'data.address.addlin1' – Craicerjack

+0

' obj' не JSON ... это, по крайней мере, часть вашей проблемы. Просто используйте 'obj' напрямую. – Brad

ответ

3
json['maths']=data['score'][0]['maths']; 

, если вы не уверены в том, что данные [ «оценка»] имеет какие-либо элементы, которые вы можете проверить перед чтением математики ключа:

if (data['score'].length) { 
    json['maths']=data['score'][0]['maths']; 
} 
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}]}"; 
0

создать другой json2 содержать данные балл затем назначить JSON.

, например:

 var json={}; 
     json2 = {} 
     json2[0] = 1; 
     json2[1] = 2; 
     json[0] = json2; 
Смежные вопросы