php - 将 JSON 字符串解析为数组,而不是对象

标签 php javascript arrays json object

我有一个 PHP 数组并使用 json 编码将其回显到 javascript 中,我需要这样做,因为它会非常动态。这是它回显的代码:

{"notempty":true}

我用它来将其转换为 javascript:

var myarray = eval('(' + json + ')');

出于某种原因,它创建了一个对象而不是数组,因此我不能使用 .length 或 for 循环。

有人知道我在这里做错了什么吗?

谢谢

最佳答案

您正在尝试将 Object 视为 Array,而 Object 不是 Array ,它是一个 Object

任何时候您在 JSON 中看到 {},这意味着“包含在这些神圣括号中的是一个动态对象”。当您看到 [] 时,这意味着“看哪!我是一个数组”(这有一个明显的异常(exception):jQuery 做了一些特殊的工作,使它自己看起来像一个数组)。

因此,为了遍历 Object,您需要使用 for...in

// eval BAD unless you know your input has been sanitized!.
var myObj = JSON.parse('{"notempty":true}');
// personally, I use it in for... in loops. It clarifies that this is a string
// you may want to use hasOwnProperty here as sometimes other "keys" are inserted
for( var it in myObj ) console.log( "myObj["+it+"] = " + myObj[it] );

关于php - 将 JSON 字符串解析为数组,而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7096310/

相关文章:

php - 将表单中的 php 变量传递到另一个页面

javascript - jQuery 或 JS 显示大图

javascript - Highcharts 无法破坏标签

javascript - 展平 D3.js 嵌套数据或将其映射到新数据集

javascript - 删除每个数组元素开头的空格

javascript - 如何从输入数组中获取多维数组

php - table 自己向下移动

php - 我丢失了 WordPress 管理员密码

python - 具有停止条件的 numpy 数组中的累积和

php - 从数据库中检索数据的超链接