js json字符串與json對象互相轉換(最全)


1.json字符串轉json對象

  使用場景:通常在取json字符串里具體的值時,會用到。

var jsonString = '{"name":"Marydon","website":"www.cnblogs.com"}';

  方式一:eval()

  使用eval()進行轉換時需要在json字符串外包裹一對小括號,不加小括號無效。 

var jsonObject= eval('(' + jsonString +')');

  方式二:JSON.parse()  

var jsonObject= JSON.parse(jsonString);

  方式三:$.parseJSON()

  頁面需要引入jQuery

var jsonObject = $.parseJSON(jsonString);

  方式四:使用json2.js

  json2.js 提供了json的序列化和反序列化方法,完美支持各個瀏覽器。

  使用時我們首先要將json2.js引用進來,源碼地址:https://github.com/douglascrockford/JSON-js。

var jsonObject= JSON.parse(jsonString);

2.json對象轉json字符串

   使用場景:通常在使用ajax想后台傳輸數據時使用,因為如果直接傳遞json對象,java后台接收該請求的方法需要將請求參數格式指定為json對象,甚至將其轉換成json字符串,對於后台開發人員很不方便。

var jsonObject = {"name":"Marydon","website":"www.cnblogs.com"};  

  方式一:JSON.stringify()

var jsonString = JSON.stringify(jsonObject);

  方式二:使用json2.js

  使用方式和上面一樣。

var jsonString = JSON.stringify(jsonObject);

  方式三:$.stringify()

  首先,jQuery並沒有該方法,但是我們可以對其進行擴展。

jQuery.extend({
    stringify  : function stringify(obj) {
        var t = typeof (obj);
        if (t != "object" || obj === null) {
            // simple data type
            if (t == "string") obj = '"' + obj + '"';
            return String(obj);
        } else {
            // recurse array or object
            var n, v, json = [], arr = (obj && obj.constructor == Array);
            for (n in obj) {
                v = obj[n];
                t = typeof(v);
                if (obj.hasOwnProperty(n)) {
                    if (t == "string") v = '"' + v + '"';
                    else if (t == "object" && v !== null) v = jQuery.stringify(v);
                    json.push((arr ? "" : '"' + n + '":') + String(v));
                }
            }
            return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
        }
    }
});

  第一步:在所需要使用的頁面引入你的jQuery文件;

  第二步:將上面js代碼添加到在你要調用該方法代碼之前的位置(最好是頭部,方便代碼維護)。

var jsonString = $.stringify(jsonObject);

 

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM