未定义
我访问来自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.txt
是string
你只需要解析它。如果它是一个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