$。每次投掷错误:不能使用'in'运算符来搜索'37'

时间:2016-06-29 06:00:29

标签: javascript jquery json

我有一个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'}(…)

我不知道出了什么问题。它是什么?

3 个答案:

答案 0 :(得分:3)

您只需将分配给数据变量的值的方式更改为如下所示:

var data = {key1 : 'value1', key2 : 'value2'};

取代

var data = "{'key1' : 'value1', 'key2' : 'value2'}";

答案 1 :(得分:1)

这不是一个有效的json。所以它会引发错误。

$(document).ready(function() {

  var data = {};
  data.key1 = "value1";
  data.key2 = "value2";

  $.each(data, function(index, value) {
      alert(index + ": " + value);
      });
 });

演示:https://jsfiddle.net/0d7st5q7/

答案 2 :(得分:0)

使用此代码:

 $.each(JSON.parse(data), function(index, value) {
   alert(index + ": " + value);
 });