如何将JavaScript对象转换为字符串?
例子:
var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)
输出:
对象{a=1, b=2} //非常好的可读输出:) Item: [object object] //不知道里面有什么:(
如何将JavaScript对象转换为字符串?
例子:
var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)
输出:
对象{a=1, b=2} //非常好的可读输出:) Item: [object object] //不知道里面有什么:(
当前回答
如果你可以使用lodash,你可以这样做:
> var o = {a:1, b:2};
> '{' + _.map(o, (value, key) => key + ':' + value).join(', ') + '}'
'{a:1, b:2}'
使用lodash map()也可以遍历对象。 这将每个键/值条目映射到它的字符串表示形式:
> _.map(o, (value, key) => key + ':' + value)
[ 'a:1', 'b:2' ]
join()将数组条目放在一起。
如果你可以使用ES6模板字符串,这也是有效的:
> `{${_.map(o, (value, key) => `${key}:${value}`).join(', ')}}`
'{a:1, b:2}'
请注意,这不是递归通过对象:
> var o = {a:1, b:{c:2}}
> _.map(o, (value, key) => `${key}:${value}`)
[ 'a:1', 'b:[object Object]' ]
就像node的util.inspect()一样:
> util.inspect(o)
'{ a: 1, b: { c: 2 } }'
其他回答
setobjToString:function(obj){
var me =this;
obj=obj[0];
var tabjson=[];
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
if (obj[p] instanceof Array){
tabjson.push('"'+p +'"'+ ':' + me.setobjToString(obj[p]));
}else{
tabjson.push('"'+p +'"'+':"'+obj[p]+'"');
}
}
} tabjson.push()
return '{'+tabjson.join(',')+'}';
}
一个选项:
console.log('Item: ' + JSON.stringify(o));
另一个选项(正如soktinpk在评论中指出的那样),更适合控制台调试IMO:
console.log('Item: ', o);
实际上,现有的答案中缺少一个简单的选项(适用于最近的浏览器和Node.js):
console.log('Item: %o', o);
我更喜欢这样做,因为JSON.stringify()有一定的限制(例如循环结构)。
如果你不播放join()到对象。
const obj = {one:1, two:2, three:3};
let arr = [];
for(let p in obj)
arr.push(obj[p]);
const str = arr.join(',');
如果你想要的只是一个字符串输出,那么这应该工作: