Javascript 从对象获取属性将返回未定义的
当在应用程序上执行JSON.stringify并打印时,我从应用程序x中得到一个值,它如下所示:Javascript 从对象获取属性将返回未定义的,javascript,json,object,Javascript,Json,Object,当在应用程序上执行JSON.stringify并打印时,我从应用程序x中得到一个值,它如下所示: const x = JSON.stringify(someData); console.log(`data: ${x}`); console.log(`dataname: ${x.name}`); 结果: data: {"name":"myname","id":"12345"} 我只想获取属性的值,例如名称,所以我是这样做的: const x = JSON.stringify(someData
const x = JSON.stringify(someData);
console.log(`data: ${x}`);
console.log(`dataname: ${x.name}`);
结果:
data: {"name":"myname","id":"12345"}
我只想获取属性的值,例如名称,所以我是这样做的:
const x = JSON.stringify(someData);
console.log(`data: ${x}`);
console.log(`dataname: ${x.name}`);
并希望看到打印的myname,但它没有定义
我不知道怎么回事。如果是JSON,您需要先将其转换为object: const obj=JSON.parse“{name:myname,id:ead65a6}”;
console.logobj.name尽管JSON双逗号中有错误,但您确定它实际上是一个JS对象吗 首先,清理这个,去掉多余的,:
{
"name":"myname",
"id":"ead65a6"
}
在您的示例中,这实际上看起来像JS中的字符串。。。
因此,需要使用JSON.parsemyObj将其转换为对象
然后您可以像访问对象一样访问它:
myObj = JSON.parse(myObj);
console.log(myObj.name);
对象是否异步填充?myObj是字符串还是对象?请创建一个是JSON还是对象?JSON是一个字符串,看起来类似于JavaScript中的文本对象语法。但是因为它是一个字符串,所以没有name属性。如果它是一个对象,那么您看到的值可能会在以后填充,因此您在控制台中看到的不是记录该对象时该对象的当前表示形式。我编辑了文章以使其更清晰,现在最明确的是X是一个字符串,因此它没有name属性,因此x.name将正确地生成未定义的。如果您使用JSON.stringify,如stringify所说,从对象中生成字符串。。。首先需要再次解析该字符串以将其作为对象访问…不起作用,仍然未定义。即使解析是在x或somedatas上完成的,我也不知道是否有输入错误或其他原因,但是const x=JSON.stringify{name:myname,id:12345};log`dataname:${JSON.parsex.name}`;对我来说非常好。