如果我在JS中定义了一个对象:

var j={"name":"binchen"};

如何将对象转换为JSON?输出字符串应该是:

'{"name":"binchen"}'

当前回答

当前所有浏览器都内置了原生JSON支持。所以只要你不是在处理像IE6/7这样的史前浏览器,你就可以很容易地做到这一点:

Var j = { “名称”:“binchen” }; console.log (JSON.stringify (j));

其他回答

现有的JSON替换对我来说太多了,所以我写了自己的函数。这似乎是可行的,但我可能错过了一些边缘情况(在我的项目中不会出现)。并且可能不适用于任何已存在的对象,只适用于自制数据。

function simpleJSONstringify (obj) {
    var prop, str, val,
        isArray = obj instanceof Array;

    if (typeof obj !== "object")
        return false;

    str = isArray ? "[" : "{";

    function quote (str) {
        if (typeof str !== "string")
            str = str.toString ();

        // When the actual variable was a number, it was returning a number between quotation marks
        // return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';

        // Now, we are verifing if is a number and, if it is, we remove the quotation marks
        str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';

        if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
            return str;
        else
            return str.replace (/^["]/, '').replace (/["]$/, '');
    }

    for (prop in obj) {
        if (!isArray) {
            // quote property
            str += quote (prop) + ": ";
        }

        // quote value
        val = obj [prop];
        str += typeof val === "object" ? simpleJSONstringify (val) : quote (val);
        str += ", ";
    }

    // Remove last colon, close bracket
    str = str.substr (0, str.length - 2) + ( isArray ? "]" : "}" );

    return str;
}

你可以像这样使用本地stringify函数

Const j={"name": "binchen"} 将json转换为字符串*/ const jsonString = JSON.stringify(j) console.log(jsonString) // {"name":"binchen"}

最流行的方式如下:

var obj ={名字:“马丁”,年龄:30岁,国家:“美国”}; //将JS对象转换为JSON字符串 var json = json .stringify(obj); console.log (json);

如果你想获得json属性值的字符串格式使用以下方式

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

看看Thomas Frank更新的/更好的方法:

JSON stringify重访

2008年5月17日更新:小型消毒剂 添加到toobject -方法中。现在 toObject()不会eval()该字符串 如果它发现任何恶意代码 它。为了更安全:不要设置 将includeFunctions标志设为true。 JSON概念之父Douglas Crockford为JavaScript编写了最早的stringfier之一。后来Steve Yen在Trim Path写了一个很好的改进版本,我用了一段时间。我想和大家分享的是我对史蒂夫版本的修改。基本上他们源于我的愿望,使stringifier: 处理和恢复循环引用 包含函数/方法的JavaScript代码(作为一个选项) 排除object中的对象成员。原型(如果需要的话)。