【发布时间】:2016-06-29 14:46:18
【问题描述】:
我有一个 JSON 对象,如下所示:
var data = "{'key1' : 'value1', 'key2' : 'value2'}";
因为它是 JSON 格式,所以不需要解析,所以我只想使用 $.each 来迭代对象,如下所示:
$.each(data, function(index, value) {
alert(index + ": " + value);
});
它抛出一个控制台错误
Uncaught TypeError: Cannot use 'in' operator to search for '37' in {'key1' : 'value1', 'key2' : 'value2'}(…)
我不知道出了什么问题。这是什么?
【问题讨论】:
-
数据是字符串,事件不是有效的 JSON
-
@Pranav 你能详细说明一下吗?
-
$.each 可以申请一个对象或一个数组...但是你使用的是一个字符串,要么创建一个对象,要么创建一个有效的 json 并解析
-
“因为是 JSON 格式,所以不需要解析” 完全不对。 JSON 必须被解析为原生 JavaScript 值。现在你有一个字符串(甚至不包含 JSON)。你不能在字符串上使用
$.each。
标签: javascript jquery json