无法访问JSON数组中的元素

时间:2017-02-17 08:19:37

标签: javascript html arrays json getjson

没有人真正回答这个问题,但是如何使用JavaScript从php / mysql直接使用这个JSON返回数据?

以下是我使用sDisplay = do_query_ieee_block(":DISPlay:DATA? PNG, COLor") 并将其保存到Javascript变量JSON.parse后的返回数据

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我已多次尝试了解它,但我似乎无法使用此数组所有。 有人可以帮忙吗?

我也尝试了undefined样式,但它只返回[object Object]

所以请有人详细说明这个吗?

3 个答案:

答案 0 :(得分:4)

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);
});




答案 1 :(得分:1)

  1. 如果您通过ajax从php获得此响应。 请务必使用dataType作为json来获取json类型的响应而不是字符串。

  2. 否则你需要像这样解析json数据

    obj = JSON.parse(jsonStrFromPhp);
    
  3. 然后你可以像obj.stuname或obj [0]一样获取数据.stuname取决于你是如何从这个{"stu":obj}或像这样的[{"stu":obj}]

    这样的PHP返回的

答案 2 :(得分:0)

虽然我有偏头痛......为什么我的代码出错了但事实证明即使obj = JSON.parse(jsonStrFromPhp);仅返回[object Object],[object Object] javascript,实际上可以理解shins并返回我的变量..多么令人困惑。