首页 文章

将JS对象转换为JSON字符串

提问于
浏览
1067

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

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

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

'{"name":"binchen"}'

26 回答

  • 6

    你想要的是:

    var yourObject = {a : "string", b : 2 };
    Json.Stringify(yourObject);
    

    无论哪种方式,如果你想要一个漂亮的印刷品你应该检查:How can I pretty-print JSON using JavaScript?

    More check this for info on JSON stringify/parse.

  • 4

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

    JSON.stringify(值,替换器,空格)
    值任何JavaScript值,通常是对象或数组 .

    replacer一个可选参数,用于确定对象的方式
    值是对象的字符串 . 它可以是一个
    函数或字符串数组 .

    space一个可选参数,指定缩进
    嵌套结构如果省略,则文本将
    没有额外的空白包装 . 如果是数字,
    它将指定每个缩进的空格数
    水平 . 如果是字符串(例如'\ t'或' '),
    它包含用于在每个级别缩进的字符 .

    此方法从JavaScript值生成JSON文本 .

  • 25
    var someObj = { "name" : "some name" };
    var someObjStr = JSON.stringify(someObj);
    console.log( someObjStr  );
    
  • 0
    So in order to convert a js object to JSON String:
    

    The simple syntax for converting an object to a string is

    JSON.stringify(value)
    

    The full syntax is: JSON.stringify(value [,replacer [,space]])

    Let’s see some simple examples. Note that the whole string gets double quotes and all the data in the string gets escaped if needed.

    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"}"*/
    
  • 7

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

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

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

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

    OR

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

    所有当前的浏览器都内置了原生JSON支持 . 因此,只要您不处理像IE6 / 7这样的史前浏览器,您就可以轻松地执行此操作:

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

    你可以使用这样的原生stringify函数

    const j={ "name": "binchen" }
    
    /** convert json to string */
    const jsonString = JSON.stringify(j)
    
    console.log(jsonString) // {"name":"binchen"}
    
  • 6

    定义对象

    let obj = {
    "firstname" : "Hello",
    "lastname" : "javascript"
    
    };
    

    然后使用此代码将其转换为字符串

    strObj= JSON.stringify(obj);
    

    确保控制台的结果

    console.log(strObj);
    
  • 9

    现有的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;
    }
    
  • -20

    Json Stringify可以将你的js对象转换为json

    var x = {"name" : "name1"};
     JSON.stringify(x);
    
  • 1

    您只需在下面添加此代码即可
    var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'

  • 1

    我遇到了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会给你你的字符串表示(就像在这个线程中的其他时间一样),除非你有一个大对象,这也应该有用 - just make sure you build it to fit your needs - 我需要它的名字而不是数组

  • -2
    JSON.stringify({"key":"value"});
    
  • 7

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

    转换是 Object to String

    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

  • 4

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

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

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

  • 1

    在angularJS

    angular.toJson(obj, pretty);
    

    obj:要序列化为JSON的输入 .

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

    (默认:2)

  • 13

    只需复制和pase

    $("form").submit(function(evt){
      evt.preventDefault();
      var formData = $("form").serializeArray(); // Create array of object
      var jsonConvertedData = JSON.stringify(formData);  // Convert to json
    });
    
  • 4

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

    $("form").submit(function(evt){
      evt.preventDefault();
      var formData = $("form").serializeArray(); // Create array of object
      var jsonConvert = JSON.stringify(formData);  // Convert to json
    });
    

    谢谢

  • 1

    如果您还需要美化, JSON.stringify(j,null,4) 会给你美化JSON

  • 1

    如果要以字符串格式获取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}'
    
  • 2
    const obj = { "name":"xxx", "city":"York"};
    const myJSON = JSON.stringify(obj);
      console.log(myJSON);
    
  • 2

    查看更新/更好的方式:

    2008年5月17日更新:将小型消毒剂添加到toObject方法中 . 现在,如果字符串中发现任何恶意代码,toObject()将不会eval()该字符串 . 为了更加安全:不要将includeFunctions标志设置为true . JSON概念之父Douglas Crockford编写了JavaScript的第一个字符串之一 . 后来,Trim Path的Steve Yen编写了一个很好的改进版本,我已经使用了一段时间 . 这是我对Steve的版本的更改,我想与您分享 . 基本上它们源于我希望制作字符串:•处理和恢复循环引用
    •包含函数/方法的JavaScript代码(作为选项)
    •如果需要,从Object.prototype中排除对象成员 .

  • 0

    为此定义了一个自定义,直到我们对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);
    

    OUTPUT

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

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

  • 3

    你可以使用JSON.stringify()函数来做到这一点 .

  • 0

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

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

相关问题