【问题标题】:Reading simple JSON Object returns undefined读取简单 JSON 对象返回未定义
【发布时间】:2017-10-19 20:21:09
【问题描述】:

我有一个像这样的 JSON 对象。

  {
  "Manager": "[{\"firstname\":\"Kris\"}],[{\"lastname\":\"test\"}]",
  "Employee": "[{\"firstname\":\"Nick\"}],[{\"lastname\":\"test\"}]"
  }

我正在使用 Jquery 尝试读取我的对象,但似乎我做错了。

JSON.stringify(data[0].Manager.firstname) //returns undefined.

任何关于如何通过 JQuery 阅读本文的建议将不胜感激

请注意,我的 ajax 调用中的数据类型是 JSON。提前致谢。

【问题讨论】:

  • name 还是firstname
  • 对不起它的名字。我已经编辑了我的问题。
  • 使用' 而不是\"
  • 为什么要对 json 进行双重编码?
  • 这不是一个对象,你有语法错误最像的对象:{ "Manager": "[{\"fistname\":\"Kris\"},{\"lastname\":\"test\"}]", "Employee": "[{\"fistname\":\"Nick\"},{\"lastname\":\"test\"}]" }remove][between objects

标签: jquery json object


【解决方案1】:

这是无效的 json "[{\"fistname\":\"Nick\"}],[{\"lastname\":\"test\"}]"

是有效的 json "[{\"fistname\":\"Nick\"},{\"lastname\":\"test\"}]"

查克json online

var obj= {"Manager": "[{\"fistname\":\"Kris\"},{\"lastname\":\"test\"}]","Employee": "[{\"fistname\":\"Nick\"},{\"lastname\":\"test\"}]"};
  $.each(obj,function(key,value){
    if(key=='Manager'){
       var elem=$.parseJSON(value);
       $.each(elem,function(key,value){
         if(!(typeof value.fistname === "undefined"))
            console.log(value.fistname);
       });
     }
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

    【解决方案2】:

    你的 json 有 firstName 的 firstName。将其更改为 firstName 应该可以解决它。

    【讨论】:

      【解决方案3】:

      这就是你用js做json的方式。

      var data = [{
          "Manager": {
            "firstname": "Kris",
            "lastname": "test"
          },
          "Employee": {
            "firstname": "Nick",
            "lastname": "test"
          }
        },
        {
          "Manager": {
            "firstname": "Kris2222",
            "lastname": "test222"
          },
          "Employee": {
            "firstname": "Nick222",
            "lastname": "test2222"
          }
        }
      ];
      
      
      
      console.log(data[0].Manager.firstname);
      console.log(data[1].Manager.firstname);

      【讨论】:

      • 谢谢丹尼尔。我想我需要找出为什么我的 JSON 对象搞砸了。我会告诉你的。
      • 我知道这是有效 JSON 对象的正确方法,但似乎有另一种方法可以按照 Farhad 的回答读取我拥有的对象。我明天会试试,我会想出一个编辑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多