【发布时间】:2017-07-08 01:42:25
【问题描述】:
如上所述,我不知道如何使用我通过使用此代码echo json_encode(array_merge($outp, $outp2)); 得到的服务器端 php 的这种 JSON 响应
[
{
"stuid":"12",
"stuname":"Velino Meratis",
"stucourse":"BSIT",
"stustat":"0",
"stulyear":"4",
"stulog":"feb 16 2017"
},
{
"stuid":"13",
"stuname":"Alana Melker",
"stucourse":"BSCE",
"stustat":"1",
"stulyear":"5",
"stulog":"feb 16 2017"
},
{
"stuid":"12",
"cname":"InfoTech000",
"clog":"1"
},
{
"stuid":"12",
"cname":"InfoTech001",
"clog":"2"
},
{
"stuid":"12",
"cname":"C101",
"clog":"3"
},
{
"stuid":"13",
"cname":"CE000",
"clog":"4"
},
{
"stuid":"13",
"cname":"CE001",
"clog":"5"
},
{
"stuid":"13",
"cname":"C101",
"clog":"6"
}
]
如果我在客户端 javascript 中使用此代码
if (this.readyState == 4 && this.status == 200) {
students = JSON.parse(this.responseText);
students.forEach(function(item){
console.log(item.stuid);
x = item.stuid;
document.getElementById("demo").innerHTML += x + " " + item.stuname + "<br>" + item.cname + "<br>";
});
}
它最终给了我这个:-
12 Velino Meratis
undefined
13 Alana Melker
undefined
不知何故,我可以迭代 stuid 和 stuname,但它不允许它们包含 cname 作为数组。
我怎样才能把它变成这样的东西:-
12 Velino Meratis
InfoTech000, InfoTech001, C101
13 Alana Melker
CE000, CE001, C101
有人可以帮忙解释一下吗?
【问题讨论】:
-
如您所见,并非所有项目都具有您尝试使用的所有参数。
-
stuid是不是不够用? -
您正尝试在数组中的每个对象上使用
cname和stuname。如果您查看 json 数据,所有对象都没有(实际上都没有)这些属性,因此尝试使用它们会在它们不存在时给您“未定义”。 -
json 是从哪里来的?如果您自己创建它,我会推荐一个更好的数据结构。
-
没有。我是说您应该为每个学生构建一个对象,其中包含与该学生相关的所有数据。如果一个属性可以有多个值,请将其设为包含这些值的数组。还要确保所有学生对象都具有相同的属性集。
标签: javascript php html json