JSON.stringify返回的是对象的"[object Object]"而不是对象本身的内容

53

我创建了一个JavaScript对象并将其转换为JSON字符串,但是在这种情况下JSON.stringify返回"[object Object]"而不是显示对象的内容。我该如何解决这个问题,以便JSON字符串实际包含对象的内容?

var theObject = {name:{firstName:"Mark", lastName:"Bob"}};
alert(JSON.stringify(theObject.toString())); //this alerts "[object Object]"

警告不显示对象,只显示字符串,你应该使用控制台。将对象转换为字符串也是一样的,最终你会得到[object Object],因为这是对象的字符串表示形式。 - adeneo
4
theObject.toString()的结果是"[object Object]" - Nirvana Tikku
1
你是否曾经想过为什么会出现 [object Object]?看看这个答案:https://dev59.com/MG445IYBdhLWcg3wq8FY#25419538 - kchetan
4个回答

61
使用JSON.stringify(theObject);

1
如何从 JSON 字符串中获取名称 - oxygen
@oxygen 根据上面的 OP 示例,使用:console.log(JSON.stringify(theObject.name.firstName.toString())); // 输出:"Mark" - Chris22

7
在这种情况下,JSON.stringify返回"[object Object]"。这是因为在序列化之前调用了toString()方法。
JSON.stringify(theObject.toString()) /* <-- here */

移除 toString() 调用,它应该可以正常工作:

alert( JSON.stringify( theObject ) );

6

2

使用

var theObject = {name:{firstName:"Mark", lastName:"Bob"}};
alert(JSON.stringify(theObject));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接