无法访问 JSON 数组中的元素
Can't access an element in JSON array
没有人真正回答过这个问题,但是究竟如何才能使用来自 php/mysql 的 JSON return 数据直接使用 JavaScript?
这是我使用 JSON.parse
并将其保存到 Javascript 变量后的 return 数据 obj
[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]
我试过简单的 obj.stuname
但它 return 只是一个 undefined
我已经尝试了很多次来理解它,但我似乎无法使用这个数组根本。
有人可以帮忙吗?
我也尝试过 reObj = {"stu":obj};
风格,但它只是 return 一个 [object Object]
所以请有人详细说明一下?
obj
是 json array
,因此您必须使用其 index
.
访问元素
此外,您必须使用 JSON.parse
才能将 string
的 json
文本转换为 Javascript 对象。
试试这个:
var stuname=obj[0].stuname;
var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]';
var objParsed=JSON.parse(obj);
console.log(objParsed[0].stuname);
如果要迭代 array
,请使用 forEach
方法。
var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]';
var objParsed=JSON.parse(obj);
objParsed.forEach(function(item){
console.log(item.stuname);
});
如果您通过 ajax 从 php 收到此回复。
请务必将 dataType
用作 json
以获得 json 类型的响应而不是字符串。
否则你需要这样解析json数据
obj = JSON.parse(jsonStrFromPhp);
然后你可以获取数据作为 obj.stuname 或 obj[0].stuname 取决于你如何从 php 返回,像这样 {"stu":obj}
或像这样 [{"stu":obj}]
当我偏头痛时...为什么我的代码是错误的结果证明即使 obj = JSON.parse(jsonStrFromPhp);
只返回一个 [object Object],[object Object]
javascript 实际上可以理解小腿并返回我的变量...多么令人困惑。
没有人真正回答过这个问题,但是究竟如何才能使用来自 php/mysql 的 JSON return 数据直接使用 JavaScript?
这是我使用 JSON.parse
并将其保存到 Javascript 变量后的 return 数据 obj
[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]
我试过简单的 obj.stuname
但它 return 只是一个 undefined
我已经尝试了很多次来理解它,但我似乎无法使用这个数组根本。
有人可以帮忙吗?
我也尝试过 reObj = {"stu":obj};
风格,但它只是 return 一个 [object Object]
所以请有人详细说明一下?
obj
是 json array
,因此您必须使用其 index
.
此外,您必须使用 JSON.parse
才能将 string
的 json
文本转换为 Javascript 对象。
试试这个:
var stuname=obj[0].stuname;
var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]';
var objParsed=JSON.parse(obj);
console.log(objParsed[0].stuname);
如果要迭代 array
,请使用 forEach
方法。
var obj='[{"stuid":"10-00002","stuname":"Meratis, Velino","stucourse":"Arts","stustat":"0","stulyear":"4","stulog":"feb 16 2017"},{"stuid":"10-00003","stuname":"Melker, Alana","stucourse":"Wilderness","stustat":"1","stulyear":"5","stulog":"feb 16 2017"}]';
var objParsed=JSON.parse(obj);
objParsed.forEach(function(item){
console.log(item.stuname);
});
如果您通过 ajax 从 php 收到此回复。 请务必将
dataType
用作json
以获得 json 类型的响应而不是字符串。否则你需要这样解析json数据
obj = JSON.parse(jsonStrFromPhp);
然后你可以获取数据作为 obj.stuname 或 obj[0].stuname 取决于你如何从 php 返回,像这样 {"stu":obj}
或像这样 [{"stu":obj}]
当我偏头痛时...为什么我的代码是错误的结果证明即使 obj = JSON.parse(jsonStrFromPhp);
只返回一个 [object Object],[object Object]
javascript 实际上可以理解小腿并返回我的变量...多么令人困惑。