【问题标题】:javascript says JSON object property is undefined although it's notjavascript 说 JSON 对象属性是未定义的,虽然它不是
【发布时间】:2017-11-27 11:54:24
【问题描述】:

我有一个 json 对象,我将它打印到屏幕上(使用 alert() 函数):

alert(object);

结果如下:

那我想把id的值打印到屏幕上:

    alert(object["id"]); 

结果是这样的:

如您所见,键“id”的值不是(!!!)未定义的。

这到底是怎么回事?!

【问题讨论】:

  • 请在您的问题中仅包含文字,不要包含文字截图。

标签: javascript json object properties undefined


【解决方案1】:

看起来你的 json 对象并不是一个真正的对象,它是一个 json 字符串。为了将其用作对象,您需要使用像 JSON.parse(obj) 这样的反序列化函数。许多框架都有自己的反序列化 JSON 字符串的实现。
当您尝试使用真实对象执行 alert(obj) 时,结果将是 [object Object] 或类似的东西

【讨论】:

  • 我也想发同样的! :)
  • 感谢您的帮助!这就是解决方案。
  • 我的问题不同,但你的想法帮助我解决了这个问题
【解决方案2】:

你的 JSON 没有被解析,所以为了让 JavaScript 能够访问它的值,你应该首先解析它,如第 1 行:

var result = JSON.parse(object);

解析 JSON 对象后,您可以访问它的值,如下所示:

alert(result.id);

【讨论】:

    【解决方案3】:

    您需要将其分配给var,然后访问它。

    var object = {id: "someId"};
    console.log(object);
    alert(object["id"]);

    【讨论】:

      【解决方案4】:

      在 JavaScript 中,可以使用 .运算符或使用 [] 进行关联数组索引。 IE。 object.property 等价于object["property"]

      你可以试试:

      var obj = JSON.parse(Object);
      alert(obj.id); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-29
        • 2012-01-02
        • 2020-03-13
        • 2012-08-26
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多