[{
"SchoolId":"015-08-0034-009-37",
"SubjectId":"08-0034-00613",
"Student":[
{"StudentId":"T-15981","StudentName":"John"},
{"StudentId":"T-15982","StudentName":"Paul"}
]
}]
我有一个像我的 php json_encode这样的 json 格式。我正在获得这样的数据
for (var i = 0; i < data.length; i++) {
console.log(data.[i].SchoolId);
console.log(data.[i].SubjectId);
}
我想得到的值
{"StudentId":"T-15981","StudentName":"John"},
{"StudentId":"T-15982","StudentName":"Paul"}
如何获取两个条目的值?任何想法都值得赞赏
UPDATE
success: function(data) {
for (var i = 0; i < data.student.length; i++) {
console.log(data.student[i].StudentId);
console.log(data.student[i].SchoolId);
}
},
这是我通过将数据类型从 JSON 更改为 HTML 从 Ajax 响应中获得的print_r.这是network>XHR>Response
中的输出
Array
(
[0] => Array
(
[SchoolId] => 015-08-0034-009-37
[SubjectId] => 08-0034-00613
[Student] => Array
(
[0] => Array
(
[StudentId] => 015-08-0034-009-37
[firstname] => Chona
[lastname] => Sy
[middleinitial] => D
)
[1] => Array
(
[StudentId] => 015-08-0034-009-37
[firstname] => Alona
[lastname] => Sy
[middleinitial] => D
)
)
)
[1] => Array
(
[SchoolId] => 015-08-0034-009-38
[SubjectId] => 08-0034-00613
[SupersededProperty] => Array
(
[0] => Array
(
[StudentId] => 015-08-0034-009-36
[firstname] => Edith
[lastname] => Sy
[middleinitial] => D
)
)
)
)
您可以在 FIDDLE 中找到工作示例
JS代码
var e = {
"Student":[
{"StudentId":"T-15981","StudentName":"John"},
{"StudentId":"T-15982","StudentName":"Paul"}
],
"SchoolId":"015-08-0034-009-37",
"SubjectId":"08-0034-00613",
};
for(var i=0; i<e.Student.length; i++){
alert('StudentId = ' + e.Student[i].StudentId + '; StudentName = ' + e.Student[i].StudentName);
}
var data = [{
"SchoolId":"015-08-0034-009-37",
"SubjectId":"08-0034-00613",
"Student":[
{"StudentId":"T-15981","StudentName":"John"},
{"StudentId":"T-15982","StudentName":"Paul"}
]
}]
for(var i=0; i<data[0].Student.length; i++){
var StudentData = data[0].Student[i];
alert(StudentData.StudentId);
}
你的问题是你在数组中有一个数组。这会导致您的 json 周围出现方括号 [{...}]。
Array
(
[0] => Array
(
...
不应回显第一个数组。
例如,现在似乎你有
echo json_encode(array($data));
相反,你应该有
echo json_encode($data);
作为最后的回应,尝试回显$data[0];
另请参阅此