如何打印特定的 JSON 字段?

How to print a specific JSON field?

我从一个 JSON 字符串开始,尝试将它转换成一个 JSON 对象,然后我尝试打印一个特定的字段(例如 firstName),但我得到undefined。我究竟做错了什么?谢谢!

var string = '{"firstName":"John", "lastName":"Doe"}'
var obj = JSON.stringify(string)
var json_object = JSON.parse(obj)
console.log(json_object.firstName)
console.log(json_object['firstName'])

string是字符串。 所以你不需要将其字符串化。

var string = '{"firstName":"John", "lastName":"Doe"}'
var json_object = JSON.parse(string)
console.log(json_object.firstName)

当你传递一个字符串给JSON.stringify时,相当于传递一个字符串对象给JSON.stringify

执行下面的代码后,实际上得到了变量obj的结果'"{\"firstName\":\"John\", \"lastName\":\"Doe\"}"'

var string = '{"firstName":"John", "lastName":"Doe"}'
var obj = JSON.stringify(string)

最后用JSON.parse解析'"{\"firstName\":\"John\", \"lastName\":\"Doe\"}"'字符串,得到'{"firstName":"John", "lastName":"Doe"}'的字符串对象。

详情请查看Autoboxing: primitive wrapper objects in JavaScript

因此,您可以删除 JSON.stringify(string),然后将 '{"firstName":"John", "lastName":"Doe"}' 直接传递给 JSON.parse

var string = '{"firstName":"John", "lastName":"Doe"}';
var obj = JSON.parse(string);
console.log(obj.firstName)

对象是一个字符串,你只需要解析JSON并打印你想要的。如果您创建了一个 JavaScript 对象,您可以在那里使用 Stringify 进行字符串化,但这不是必需的。 JSON Parse 解析 JSON 中的字符串。