从对象获取属性返回未定义

时间:2019-12-19 13:23:19

标签: javascript json object

我从应用程序x中获得了一个值,当它执行JSON.stringify并打印时看起来像这样:

const x = JSON.stringify(someData);
console.log(`data: ${x}`);

结果:

data: {"name":"myname","id":"12345"}

我只想获取属性的值,例如“名称”,所以我这样做是这样的:

console.log(`dataname: ${x.name}`);

,原本希望看到打印的“ myname”,但实际上是undefined

我不明白怎么了。

2 个答案:

答案 0 :(得分:1)

您确定-尽管JSON中有错误(双逗号),但实际上是JS对象吗?

首先,清理一下并删除多余的“,”:

{ 
  "name":"myname",
  "id":"ead65a6"
}

在您的示例中,这实际上看起来像是JS中的String ... 因此,您需要使用JSON.parse(myObj)

将其转换为对象

然后您可以像访问对象一样访问它:

myObj = JSON.parse(myObj);
console.log(myObj.name);

答案 1 :(得分:0)

如果是JSON,则需要先将其转换为对象:

const obj = JSON.parse('{"name":"myname","id":"ead65a6"}');
console.log(obj.name)