我知道以前曾经问过这个问题,但我无法解决这个问题。非常感谢任何帮助。
这是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:'在'操作数a'中无效'
答案 0 :(得分:2)
该对象是嵌套的,因此您必须嵌套each
。
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>
&#13;
演示:https://jsfiddle.net/L09bjjtc/1/
如果您以JSON的身份获得响应,则可以使用post方法的dataType
选项:
$.post( "test.php", { func: "getNameAndTime" }, function( data ) {
// data is JSON object
// Data processing here
}, "json");