在AJAX中解析JSONArray响应

时间:2018-06-06 13:03:02

标签: ajax

为了保持这个问题的限制,这里是W3Schools的一个例子,我扩展了一下,以便了解我想要完成的任务。

HTML:

<p id="demo"></p>

JS

var objA = [
    { "name":"John", "age":30, "city":"New York"},
    { "name2":"John2", "age2":302, "city2":"New York2"}
];

document.getElementById("demo").innerHTML = objA.name;

这打印未定义。我做错了什么?

谢谢!

经过审核......我现在有了这个......

<p id="demo"></p>
<p id="demo2"></p>

for(var i=0;i < objA.length;i++){
    document.getElementById("demo").innerHTML += objA[i]["name"];
    document.getElementById("demo2").innerHTML += objA[i]["name"];
}

如果我离开= + in,它会在两个p标签中打印两个JohnJohn2。如果我删除+,它会在两个标签中仅打印John2。第一个p标签应该打印john,第二个应该打印john2

https://jsfiddle.net/gs4zdupn/

4 个答案:

答案 0 :(得分:2)

而不是

objA.name

你做

objA[0][“name”]

答案 1 :(得分:1)

For循环是这样的

for(var i=0;i < objA.length;I++){
//whatever you want like objA[i]
}

答案 2 :(得分:0)

评论是代码的占位符。不要从字面上理解。

答案 3 :(得分:0)

首先让我们从头开始。您的JSON在一个数组中。所以你不需要名字和名字2。只要将它命名为“名称”即可。

var objA = [
{ "name":"John", "age":30, "city":"New York"},
{ "name":"John2", "age":302, "city":"New York2"}
];

然后为你的for循环做这个

for(var i=0;i < objA.length;i++){
document.getElementById("demo"+(i+1) ).innerHTML += objA[i]["name"];
document.getElementById("demo"+(i+1)).innerHTML += objA[i]["name"];
}

请记住将p标签ID重命名为

<p id="demo1"></p>
<p id="demo2"></p>