JSON.stringify 返回“[object Object]”而不是对象的内容

Posted

技术标签:

【中文标题】JSON.stringify 返回“[object Object]”而不是对象的内容【英文标题】:JSON.stringify returns "[object Object]" instead of the contents of the object 【发布时间】:2013-05-05 19:14:08 【问题描述】:

Here I'm creating a javascript object and converting it to a JSON string,但在这种情况下JSON.stringify 返回"[object Object]",而不是显示对象的内容。如何解决这个问题,让 JSON 字符串真正包含对象的内容?

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

【问题讨论】:

警报不显示对象,只显示字符串,您应该为此使用控制台。将对象转换为字符串也是如此,最终得到 [object Object],因为它是对象的字符串表示形式。 theObject.toString() = "[object Object]" 有没有想过为什么 [object Object] ?看看这个答案:***.com/a/25419538/3001704 【参考方案1】:

使用alert(JSON.stringify(theObject));

【讨论】:

如何从json字符串中获取名字 @oxygen 上面每个 OP 示例,使用:console.log(JSON.stringify(theObject.name.firstName.toString())); // output: "Mark"【参考方案2】:
theObject.toString()

.toString() 方法是罪魁祸首。去掉它;小提琴应该可以工作:http://jsfiddle.net/XX2sB/1/

【讨论】:

【参考方案3】:

使用

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

【讨论】:

【参考方案4】:

JSON.stringify 在这种情况下返回“[object Object]”

那是因为你在序列化对象之前调用了toString()

JSON.stringify(theObject.toString()) /* <-- here */

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

alert( JSON.stringify( theObject ) );

【讨论】:

以上是关于JSON.stringify 返回“[object Object]”而不是对象的内容的主要内容,如果未能解决你的问题,请参考以下文章

为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]

Jquery怎么将一个object对象转换成json字符串

text [stringify循环JSON对象] #js #json #stringify #cyclic #object

JSON.parse(JSON.stringify(object_with_function)) != object_with_function

当我 JSON.stringify(object) 我得到一个疯狂的字符串作为值

JSON.stringify 函数与 Object.defineProperty 的坑:不可枚举属性无法写入