Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象获取属性将返回未定义的_Javascript_Json_Object - Fatal编程技术网

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

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

当在应用程序上执行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);
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}`;对我来说非常好。