如何将JavaScript对象转换为字符串?
例:
var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)
Run Code Online (Sandbox Code Playgroud)
输出:
对象{a = 1,b = 2} //非常好的可读输出:)
项目:[object Object] //不知道里面是什么:(
我正在尝试以pretty print人类可读的形式找到一种JavaScript数据结构,以便进行调试.
我有一个相当大而复杂的数据结构存储在JS中,我需要编写一些代码来操作它.为了弄清楚我在做什么以及我哪里出错了,我真正需要的是能够完整地查看数据结构,并在我通过UI进行更改时更新它.
除了找到将JavaScript数据结构转储到人类可读字符串的好方法之外,我可以处理所有这些事情.JSON会这样做,但它确实需要很好地格式化和缩进.我通常会使用Firebug优秀的DOM转储功能,但我真的需要能够立刻看到整个结构,这在Firebug中似乎是不可能的.
欢迎任何建议.
提前致谢.
我得到一个"对象不支持此属性或方法错误",有谁知道为什么?
我确实将值插入到userId,fname,lname,oname,sam,hasAccess中
function Employee(id, fname, lname, oname, sam, access) {
this.id = id;
this.fname = fname;
this.lname = lname;
this.oname = oname
this.sam = sam;
this.access = access;
}
var emp = new Employee(userId, fname, lname, oname, sam, hasAccess);
var jsonstuff = emp.toSource(); //Breaking here
Run Code Online (Sandbox Code Playgroud)
虽然这个链接说它可能是http://www.w3schools.com/jsref/jsref_toSource_date.asp
我有一个包含循环引用的对象,我想看一下它的JSON表示.例如,如果我构建此对象:
var myObject = {member:{}};
myObject.member.child = {};
myObject.member.child.parent = myObject.member;
Run Code Online (Sandbox Code Playgroud)
并尝试打电话
JSON.stringify(myObject);
Run Code Online (Sandbox Code Playgroud)
我得到错误"太多的递归",这并不奇怪."child"对象具有对其"parent"的引用,而父对象具有对其子对象的引用.JSON表示不必非常准确,因为我只是将它用于调试,而不是将数据发送到服务器或将对象序列化为文件或类似的东西.有没有办法告诉JSON.stringify只是忽略某些属性(在这种情况下parent是子对象的属性),所以我会得到:
{
"member" : {
"child" : {}
}
}
Run Code Online (Sandbox Code Playgroud)
我能想到的最接近的是使用getChild()和getParent()方法而不仅仅是成员,因为JSON.stringify忽略了作为函数的任何属性,但如果我不需要,我宁愿不这样做.
当在javascript中警告变量时,它显示如下..总共9个值(姓名,地址,城市,朋友等)
如何回顾价值观
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]