javascript - 在 jQuery 中循环 JSON

标签 javascript jquery json foreach

我知道之前已经有人问过这个问题,但我无法让它工作。非常感谢任何帮助。

这是 var obj 的内容:

{
    "1": {
        "key1": "val",
        "key2": "val2"
    },
    "91": {
        "key1": "val",
        "key2": "val2"
    }
}

我是这样循环的..

$.post("path/to/script.php", {
    'param': $('#param').val()
}, function (r) {
    var obj = $.parseJSON(r);
    $.each(obj, function (k, v) {
        //doing some stuff with v.key1,v.key2 etc
    });
});

并且在 jQuery 中的某个地方遇到了一个典型的有用的 JS 错误

TypeError: invalid 'in' operand a

最佳答案

该对象是嵌套的,因此您必须嵌套每个

var obj = {
    "1": {
        "key1": "val",
        "key2": "val2"
    },
    "91": {
        "key1": "val",
        "key2": "val2"
    }
};

如果您将 JSON 作为字符串获取,则需要将字符串解析为 JSON。

var r = '{"1": {"key1": "val","key2": "val2"},"91": {"key1": "val","key2": "val2"}}';

var obj = JSON.parse(r);
$.each(obj, function(k, v) {
  $.each(v, function(key, value) {
    console.log(value);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

演示:https://jsfiddle.net/L09bjjtc/1/

如果您获取 JSON 格式的响应,则可以使用 post 方法的 dataType 选项:

$.post( "test.php", { func: "getNameAndTime" }, function( data ) {
    // data is JSON object
    // Data processing here
}, "json");

文档:https://api.jquery.com/jquery.post/

关于javascript - 在 jQuery 中循环 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752604/

相关文章:

javascript - 怎么会有两行完全相同的代码,其中一行可以工作,另一行不能呢?

javascript - 尽管未显式调用事件处理程序,但为什么会触发 eventemitter

javascript - Leaflet获取具有特定起点和终点的子折线

javascript - 处理事件后将颜色放入元素中

javascript - Jquery 在 div 上添加和删除多个图像层

JavaScript ".method"返回未定义

javascript - 存在事件的单元格的 jQuery DatePicker 背景颜色(加载时)

asp.net-mvc - backbone.js 从 asp.net mvc View 模型填充大型嵌套模型

javascript - Jquery多参数过滤问题

java - Apache Camel : Quotes will break the URI