简体   繁体   English

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

[英]Getting a property from an object returns undefined

There is a value that I get from the app, x , when it is performed a JSON.stringify over it and printed it looks like this:我从应用程序中得到一个值x ,当它在它上面执行 JSON.stringify 并打印出来时,它看起来像这样:

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

result:结果:

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

I want to get only the value of a property, for example "name", so I'm doing it like this:我只想获取属性的值,例如“名称”,所以我这样做:

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

and was expecting to see printed "myname" but instead it is undefined .并希望看到打印的 "myname" 但它是undefined

I don't get what's wrong.我不明白出了什么问题。

Are you sure - despite there is an error in your JSON (double commas) - that it's actually an JS-Object?您确定 - 尽管您的 JSON(双逗号)中有错误 - 它实际上是一个 JS-Object?

First, clean this up and remove the extra ",":首先,清理它并删除额外的“,”:

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

In your example, this actually looks like a String in JS... So you need to convert it into an object using JSON.parse(myObj)在您的示例中,这实际上看起来像 JS 中的字符串...因此您需要使用JSON.parse(myObj)将其转换为对象

Then you could access it like an object:然后你可以像访问一个对象一样访问它:

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

If it's JSON, you need to convert it to object first:如果是JSON,则需要先将其转换为对象:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM