【问题标题】:Access object inside an array - Javascript访问数组内的对象 - Javascript
【发布时间】:2019-07-29 23:26:06
【问题描述】:

这就是我的响应正文的样子。 它存储在一个变量中,当我使用 console.log(body) 我得到以下信息。

[
   {
      "key1":"value1",
      "key2":"value2",
      "key3":"value3"
   }
]

我正在尝试使用以下方法访问“key3”

console.log(body[0].key3) 

我不确定。我不确定这里有什么问题。如果我只是这样做

console.log(body[0])

我得到一个字符串[

在这里感谢您的帮助。

【问题讨论】:

  • 您得到的响应可能是一个字符串。你必须先做类似 JSON.parse(body) 的事情
  • 看起来你的 body 实际上不是那个对象,而是一个 JSON(字符串)表示。先试试JSON.parse吧。
  • 谢谢大家!就像每个人都提到它是一个字符串。我能够使用下面给出的解决方案。

标签: javascript arrays json string object


【解决方案1】:

问题解释

您的 JS 正在查看特定字符的属性:

看看下面的例子,这将有助于演示发生了什么:

const string = 'Hello';
console.log(string[0] === 'H'); // true
console.log('H'.key3 === undefined); // true

解决方案

你需要JSON.parse这个字符串:

const body = `
[
   {
      "key1":"value1",
      "key2":"value2",
      "key3":"value3"
   }
]
`;

const parsed = JSON.parse(body);
console.log(parsed[0].key3);

【讨论】:

  • 吹毛求疵:JSON.parse 的返回值不是 JSON
【解决方案2】:

body 听起来像是一个字符串 - JSON.parse 它是一个对象:

var body = '[{"key1": "value1","key2": "value2","key3": "value3"}]';
console.log(body[0]);
body = JSON.parse(body);
console.log(body[0].key3);

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    相关资源
    最近更新 更多