未定义

我访问来自JSON对象的关键,但它返回的R未定义未定义

{"body":"Hi","date":"2016-07-29 07:43:00"} 

var a = JSON.parse(JSON.stringify(r.txt));

console.log(a.body)

//undefined

值不能访问JSON对象属性的回报是

{ 

username: '1',

txt: '{"body":"Hi","date":"2016-07-29 07:43:00"}',

}

我曾尝试使用字符串化,然后解析为JSON但仍然返回undefined。

回答:

你必须像这样解析你的json。确保你提供给JSON.parse的任何输入,它应该是一个字符串。

您可以运行下面的代码片段以确保它正常工作并给出输出Hi

var json = '{"body":"Hi","date":"2016-07-29 07:43:00"}';  

var a = JSON.parse(json);

document.write(a.body);

回答:

你必须在r.txt删除单引号,它应该工作

这里是我更新的代码:

var r = { 

username: '1',

txt: {"body":"Hi","date":"2016-07-29 07:43:00"},

};

var a = JSON.parse(JSON.stringify(r.txt));

console.log(a.body)

如果r.txtstring你只需要解析它。如果它是一个object,你将其转换为字符串由stringify然后parse

回答:

在您的代码字符串化的结果将是"\"{\"body\":\"Hi\",\"date\":\"2016-07-29 07:43:00\"}\""(这是在JSON有效字符串表示),解析它会再次提供字符串作为结果不是对象。当你试图得到body字符串的属性将是undefined,因为对于字符串没有像body这样的属性。

因此,不需要再次对JSON字符串进行字符串化,只需避免使用stringify方法就可以使其工作。

var r = {  

username: '1',

txt: '{"body":"Hi","date":"2016-07-29 07:43:00"}',

};

// parse the JSON string and get the object

var a = JSON.parse(r.txt);

console.log(a.body)

以上是 未定义 的全部内容, 来源链接: utcz.com/qa/257754.html

回到顶部