【问题标题】:Uncaught TypeError: Cannot use 'in' operator to search for '123' in未捕获的类型错误:无法使用 'in' 运算符在 in 中搜索 '123'
【发布时间】:2014-05-26 15:26:07
【问题描述】:

嗨,我已经使用 JSON.stringify 将 json 对象转换为字符串,现在我想要数组中的键值对 例如。 key =en value =Anglais 等等...
这是jsfiddle
代码

      var data ={"en":{"name":"Anglais"},"fr":{"name":"Français"},
"it":{"name":"Italien"},"de":{"name":"Allemand"},"es":{"name":"Espagnol"}}

到目前为止我已经完成了

      var data = {
      "en": {
          "name": "Anglais"
      },
      "fr": {
          "name": "Français"
      },
          "it": {
          "name": "Italien"
      },
      "de": {
          "name": "Allemand"
      },
      "es": {
          "name": "Espagnol"
      }
  };
  var strData = JSON.stringify(data);
  for (var i = 0; i < strData.length; i++) {
      $('#dvarray').append('string array==' + strData[i] + "<br>");
  }
  $.each(strData, function (key, value) {

      var abbr = JSON.stringify(value);

       $('#dvstring').html('abbr=' + abbr.substr(2, 4)); //Uncaught TypeError:

  });

【问题讨论】:

  • “我已经使用 JSON.stringify 将 json 对象转换为字符串” 我认为您的意思是“JavaScript 对象到 JSON”。 JSON 只能以字符串的形式存在于 JavaScript 中,因此您的说法毫无意义。 strData 是什么?听起来您正试图在不是对象的东西上使用$.each
  • 我现在已经更新了我的代码,请帮助你检查 jsfiddle 我想要 en, fr , de , es from string
  • 好的。正如我所料,您正在尝试在字符串上使用$.each。你不能那样做。 $.each 用于数组和对象。请阅读文档:api.jquery.com/jQuery.each。看起来您实际上想要遍历原始对象中的数据,因此请不要将其转换为 JSON。
  • 你能更新 jsfiddle 代码我还是有问题
  • 我可以得到 key = name 和 value = Anglais 但问题是我不能得到 "en" , "fr" , "it", "de" , "es" 因为它没有键

标签: javascript json substring keyvaluepair


【解决方案1】:

这对我有帮助

  var data = {
      "en": {
          "name": "Anglais"
      },
      "fr": {
          "name": "Français"
      },
          "it": {
          "name": "Italien"
      },
      "de": {
          "name": "Allemand"
      },
      "es": {
          "name": "Espagnol"
      }
  };

for(var prop in data) {
   $('#dvstring').append( prop + "    <>     " + data[prop].name +  "<br>") ;
}
  $.each(strData, function (key, value) {

      var abbr = JSON.stringify(value);

       $('#dvstring').append('abbr=' + abbr.substr(2, 4));     
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 2013-06-15
    • 2015-01-17
    • 2014-07-03
    • 2015-08-22
    相关资源
    最近更新 更多