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 返回一个空对象 [重复]
text [stringify循环JSON对象] #js #json #stringify #cyclic #object
JSON.parse(JSON.stringify(object_with_function)) != object_with_function