我有一个用JSON打印的数组
[{"Name":"John Ranniel","Age":"19","City":"Manila"},{"Contact":"09197875656","Relation":"Sister"}]
出于某种原因,我将JSON分为两部分。
在javascript中,我使用JSON.parse()
解码上面的JSON。
例如:
var arr = JSON.parse(response); //The response variable contains the above JSON
alert(arr[0].Name) //Still it outputs John Ranniel, but If i change the content of the alert box on the second part of the JSON,
alert(arr[1].Contact) // It has no output, I don't know if there is a problem with the index of the array.
答案 0 :(得分:0)
确保您的JSON是字符串类型:
'[{"Name":"John Ranniel","Age":"19","City":"Manila"},{"Emergency Contact":"09197875656","Relation":"Sister"}]'
然后,你可以使用,
var arr = JSON.parse(response); //The response variable contains the above JSON
console.log(arr[0].Name);
console.log(arr[1]['Emergency Contact']); // There is no 'Contact' property iun your object, and you should use this when there's a space in the name of the property.
请参阅:
var response = '[{"Name":"John Ranniel","Age":"19","City":"Manila"},{"Emergency Contact":"09197875656","Relation":"Sister"}]';
var arr = JSON.parse(response);
console.log(arr[0].Name);
console.log(arr[1]['Emergency Contact']); // There is no 'Contact' property iun your object, and you should use this when there's a space in the name of the property.

答案 1 :(得分:0)
您正在尝试解析已经是JavaScript对象的内容,而不需要进行解析。您需要解析JSON字符串。这不是JSON字符串。这是一个JavaScript对象。
请考虑以下事项:
[1,2]
这会将数组,
强制转换为字符串“1,2”。然后JSON.parse会阻塞"[object Object],[object Object]"
,因为它不属于有效的JSON字符串。
在您的情况下,对象将被强制转换为字符串
[
JSON.parse将接受前导o
作为数组的开头,然后抛出以下字符arr
,因为它不属于正确的JSON字符串。
但是你说JSON.parse工作并导致<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
。换句话说,您输入JSON.parse的参数显然 是一个字符串,并且已正确解析。在这种情况下,警报将正常工作。
答案 2 :(得分:-1)
您的JSON结构是数组,必须解析为JSON,使用 JSON.stringify 将其解析为JSON:
var json = [{"Name":"John Ranniel","Age":"19","City":"Manila"},{"Contact":"09197875656","Relation":"Sister"}];
var str = JSON.stringify(json);
console.log(json);
var arr = JSON.parse(str);
alert(arr[0].Name) //Still it outputs John Ranniel, but If i change the content of the alert box on the second part of the JSON,
alert(arr[1].Contact) // It has no output, I don't know if there is a problem with the index of the array.
演示:Link
这个JSON是数组,你可以直接使用:
var json = [{"Name":"John Ranniel","Age":"19","City":"Manila"},{"Contact":"09197875656","Relation":"Sister"}];
alert(json[0].Name);
alert(json[1].Contact);