将JS对象转换为JSON字符串

时间:2010-11-12 08:20:51

标签: javascript json node.js string object

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

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

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

'{"name":"binchen"}'

29 个答案:

答案 0 :(得分:1761)

所有当前浏览器都内置了原生JSON支持。因此,只要您不处理IE6 / 7等史前浏览器,您就可以轻松完成:

var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'

答案 1 :(得分:99)

json2.js中找到JSON.stringify()或在大多数现代浏览器中找到本地。

   JSON.stringify(value, replacer, space)
        value       any JavaScript value, usually an object or array.

       replacer    an optional parameter that determines how object
                    values are stringified for objects. It can be a
                    function or an array of strings.

       space       an optional parameter that specifies the indentation
                    of nested structures. If it is omitted, the text will
                    be packed without extra whitespace. If it is a number,
                    it will specify the number of spaces to indent at each
                    level. If it is a string (such as '\t' or ' '),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.

答案 2 :(得分:27)

查看更新/更好的方式:

  

2008年5月17日更新:小型消毒剂   添加到toObject方法。 立即   toObject()不会eval()字符串   如果它发现任何恶意代码   为了更安全:不要设置   includeFunctions标志为true。

     

JSON概念之父Douglas Crockford编写了第一个JavaScript字符串。后来Trim Path的Steve Yen编写了一个很好的改进版本,我已经使用了一段时间。这是我对Steve的版本的修改,我想与你分享。基本上他们源于我希望制作弦乐器:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.

答案 3 :(得分:17)

您可以使用 JSON.stringify()方法将JSON对象转换为String。

var j={"name":"binchen"};
JSON.stringify(j)

对于反向过程,您可以使用 JSON.parse()方法将JSON字符串转换为JSON对象。

答案 4 :(得分:8)

如果您正在使用AngularJS,那么' json'过滤器应该这样做:

<span>{{someObject | json}}</span>

答案 5 :(得分:8)

在angularJS

angular.toJson(obj, pretty);

OBJ: 输入要序列化为JSON。

漂亮(可选):
如果设置为true,则JSON输出将包含换行符和空格。如果设置为整数,则JSON输出将包含每个缩进的许多空格。

(默认:2)

答案 6 :(得分:7)

JSON.stringify(j, null, 4)会为你提供美化JSON,以防你需要美化

第二个参数是replacer。它可以用作过滤器,您可以在进行字符串化时过滤掉某些键值。如果设置为null,它将返回所有键值对

答案 7 :(得分:6)

JSON.stringify将Javascript对象转换为JSON文本,并将该JSON文本存储在字符串中。

转化是对象到字符串

JSON.parse将一串JSON文本转换为Javascript对象。

转换是 String to Object

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

使其成为JSON字符串可以使用。

JSON.stringify({"key":"value"});

JSON.stringify({"name":"binchen"});

有关详细信息,请参阅以下链接。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

答案 8 :(得分:5)

为此定义了一个自定义,直到我们从stringify方法

做出奇怪的事情
var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
   json +=",";
}
json+="}";
document.write(json);

<强>输出

{"name":"binchen","class":"awesome"}

LIVE http://jsfiddle.net/mailmerohit5/y78zum6v/

答案 9 :(得分:5)

我遇到了stringify内存不足的问题,其他解决方案似乎没有用(至少我无法让它们工作),这是我偶然发现这个线程的时候。感谢Rohit Kumar我只是遍历我非常大的JSON对象以阻止它崩溃

var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
    MyObjectStringify += JSON.stringify(j[x]);
    count++;
    if (count < last)
        MyObjectStringify += ",";
}
MyObjectStringify += "]}";

MyObjectStringify会给你你的字符串表示(就像在这个帖子中的其他时间一样),除非你有一个大对象,这也应该有用 - 只是确保你构建它以满足你的需要 - 我需要它有一个名字而不是数组

答案 10 :(得分:3)

沃金......易于使用

getch

由于

答案 11 :(得分:1)

如果要以字符串格式获取json属性值,请使用以下方法

select = document.getElementById('selectId');
var opt = document.createElement('option');
    opt.value = 'value';
    opt.innerHTML = 'name';
    opt.selected = true;
    select.appendChild(opt);

答案 12 :(得分:1)

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

Create ModelClass for the fields and use Gson to make object of class from JSON response.

答案 13 :(得分:1)

现有的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();
        return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"'
    }

    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;
}

答案 14 :(得分:1)

So in order to convert a js object to JSON String: 

将对象转换为字符串的简单语法是

JSON.stringify(value)

完整语法为:     JSON.stringify(value [,replacer [,space]])

让我们看一些简单的示例。请注意,整个字符串  如果出现双引号,则字符串中的所有数据都将转义 需要。

JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* " 
{"foo":true,"baz":false}" */



const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1", 
"property2":"value2"}"*/

答案 15 :(得分:1)

转换str => obj

const onePlusStr ='[{“ brand”:“ oneplus”},{“ model”:“ 7T”}]'';

const onePLusObj = JSON.parse(onePlusStr);

转换obj => str

const onePLusObjToStr = JSON.stringify(onePlusStr);

在JS中进行JSON解析的参考:
JSON.parse():click
JSON.stringify():click

答案 16 :(得分:0)

只需使用JSON.stringify(your_variableName)即可将JSON对象转换为字符串,如果要将字符串转换为对象,请使用JSON.parse(your_variableName)

答案 17 :(得分:0)

最流行的方法如下:

var obj = {name: "Martin", age: 30, country: "United States"};   
// Converting JS object to JSON string
var json = JSON.stringify(obj);
console.log(json);

答案 18 :(得分:0)

使用JSON.stringify()方法:

const stringified = JSON.stringify({})  // pass object you want to convert in string format

答案 19 :(得分:0)

使用字符串化功能

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

var j_json = JSON.stringify(j);

console.log("j in json object format :", j_json);

编码愉快!

答案 20 :(得分:0)

非常易于使用的方法,但不要在发行版中使用(因为可能存在兼容性问题)。

非常适合您身边的测试。

protobuf-socket-rpc

答案 21 :(得分:0)

使用JSON.stringify(param1, param2, param3);

什么是:-

param1->转换为JSON的值

param2->函数以您自己的方式进行字符串化。另外,它也可以用作白名单,最终JSON中需要包含这些对象。

param3-> Number数据类型,指示要添加的空格数。允许的最大值为10。

答案 22 :(得分:0)

您可以使用JSON.stringify()方法将JSON对象转换为String。

var j={"name":"hello world"};
JSON.stringify(j);

要将此字符串转换回json对象,可以使用JSON.parse()方法。

答案 23 :(得分:0)

只需使用JSON.stringify进行这种转换-但是请记住,具有undefined值的字段将不会包含在json

var j={"name":"binchen", "remember":undefined, "age": null };

var s=JSON.stringify(j);

console.log(s);

字段remember从输出json中“消失”

答案 24 :(得分:0)

对于Node JS中的调试,您可以使用 util.inspect()。通过循环引用可以更好地工作。

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));

答案 25 :(得分:-1)

使用此

var j={"name":"binchen"};
 var myJSON = JSON.stringify(j);

答案 26 :(得分:-1)

是的,JSON.stringify可以解决问题。您也可以这样做:

var x = {"firstname" : "john", "lastname" : "doe"};
x = String(x);
//or...
x = x.toString();

答案 27 :(得分:-4)

如果您正在寻找带有语法突出显示功能的JS to JSON在线转换工具。

Javascript to JSON tool

答案 28 :(得分:-23)

如果你有一个json字符串并且它没有用[]包装,那么先把它包起来

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);

var jsonobj = eval('(' + str + ')');
console.log(jsonobj);