如何将JavaScript对象转换为字符串?

例子:

var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)

输出:

对象{a=1, b=2} //非常好的可读输出:) Item: [object object] //不知道里面有什么:(


当前回答

1.

JSON.stringify(o);

Item: {"a":"1", "b":"2"}

2.

var o = {a:1, b:2};
var b=[]; Object.keys(o).forEach(function(k){b.push(k+":"+o[k]);});
b="{"+b.join(', ')+"}";
console.log('Item: ' + b);

项目:{a:1, b:2}

其他回答

如果你想在内联表达式类型的情况下用最简单的方法将变量转换为字符串,“+variablename是我打过的最好的球。

如果'variablename'是一个对象,你使用空字符串连接操作,它将给出烦人的[object object],在这种情况下,你可能想要Gary C。JSON获得了极大的好评。stringify问题的答案,你可以在Mozilla的开发者网络的答案在顶部的链接中阅读。

也许你正在寻找

JSON.stringify(JSON.stringify(obj))


"{\"id\":30}"

我用for in和template literal来在字符串中有两个键-值对,这对我有用。

让obj = { 名称:“约翰”, 年龄:22岁 isDev:没错, }; let toStr = ""; For (let key in obj) { if (obj.hasOwnProperty(key)) { toStr += ' ${key} ${obj[key]} ' + ", "; } } console.log (toStr); console.log (typeof toStr);

如果您正在使用Dojo javascript框架,那么已经有一个内置函数来完成此工作:Dojo . tojson(),它将像这样使用。

var obj = {
  name: 'myObj'
};
dojo.toJson(obj);

它将返回一个字符串。如果要将对象转换为json数据,则添加第二个参数true。

dojo.toJson(obj, true);

http://dojotoolkit.org/reference-guide/dojo/toJson.html#dojo-tojson

由于firefox没有将某些对象stringify为屏幕对象;如果你想有相同的结果,如:JSON.stringify(obj):

function objToString (obj) {
    var tabjson=[];
    for (var p in obj) {
        if (obj.hasOwnProperty(p)) {
            tabjson.push('"'+p +'"'+ ':' + obj[p]);
        }
    }  tabjson.push()
    return '{'+tabjson.join(',')+'}';
}