【问题标题】:How to convert multi-object associative JSON array into Javascript array [duplicate]如何将多对象关联JSON数组转换为Javascript数组[重复]
【发布时间】:2012-12-02 21:38:03
【问题描述】:

可能重复:
How to parse JSON in JavaScript

我正在从 PHP 中提取一个多对象关联数组。下面是一个例子:

$displayArray[] = array("Name"=>"Joe", "Important"=>"1", "Group"=>"Family");
$displayArray[] = array("Name"=>"Jane", "Important"=>"0", "Group"=>"Family");
echo json_encode($displayArray);

使用AJAX,返回的JSON字符串是这样的:

[{"Name":"Joe","Important":"1","Group":"Family"},{"Name":"Jane","Important":"0","Group":"Family"}]

我想将此 JSON 数据转换为 Javascript 数组。帮助表示赞赏。

【问题讨论】:

  • 你的第二个代码示例是一个 JS 数组
  • 您可以使用 JSON.parse() 来执行此操作。请记住,您可能需要对此进行 polyfill 以在较旧的浏览器中使用。
  • @Jeremy:向我们展示您的 AJAX 代码。您可能只需要添加JSON.parse()
  • @Jeremy,像 m90 说的那样使用 JSON.parse()。
  • @JonathanM: 用于 JSON 解析???

标签: php javascript json associative-array


【解决方案1】:

看起来你正在使用 jQuery。 .ajax() 的返回不是您通过 PHP 回显给浏览器的对象。相反,您可以使用成功回调访问返回的数据,例如:

var myData;

$.ajax({ type: 'POST', 
       url: 'ReadToggle.php', 
       dataType:'json', 
       async: false })
       success: function(data) {
                    myData = data;
       }
})

然后您可以像标准 javascript 对象一样解析 myData,例如:

myData[index]

我认为大多数人倾向于编写他们的代码来处理成功函数本身中返回的对象,例如:

var myData;

$.ajax({ type: 'POST', 
       url: 'ReadToggle.php', 
       dataType:'json', 
       async: false })
       success: function(data) {
                    console.log(data);
                    console.log(data[0]);
       }
})

【讨论】:

  • 太棒了。谢谢厄尼。我这样循环: for(var index in myData) { document.write( 'Name' + " : " + myData[index]['Name'] + "
    "); document.write('重要' + " : " + myData[index]['重要'] + "
    "); document.write('Group' + " : " + myData[index]['Group'] + "
    "); }
  • @Jeremy 很高兴为您提供帮助。就像我说的那样,大多数人将其放入实际的成功函数中,而不是使用单独的 var 和 .ajax() 调用外部的代码。
猜你喜欢
  • 1970-01-01
  • 2020-02-06
  • 2015-04-21
  • 2016-01-11
  • 1970-01-01
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
相关资源
最近更新 更多