1. 程式人生 > >JSON物件和JSON字串的轉換

JSON物件和JSON字串的轉換

紅色部分為推薦使用的方法(因為不需要再另外去引進包)

JSON字串:

    var str1 = '{ "name": "cxh", "sex": "man" }';

    JSON物件:

    var str2 = { "name": "cxh", "sex": "man" };

    一、JSON字串轉換為JSON物件

    要使用上面的str1,必須使用下面的方法先轉化為JSON物件:

    //由JSON字串轉換為JSON物件

    var obj = eval('(' + str + ')');

    或者

    var obj = str.parseJSON(); //由JSON字串轉換為JSON物件

    或者

    var obj = JSON.parse(str); //由JSON字串轉換為JSON物件

    然後,就可以這樣讀取:

    Alert(obj.name);

    Alert(obj.sex);

    特別注意:如果obj本來就是一個JSON物件,那麼使用eval()函式轉換後(哪怕是多次轉換)還是JSON物件,但是使用parseJSON()函式處理後會有問題(丟擲語法異常)。

    二、可以使用toJSONString()或者全域性方法JSON.stringify()將JSON物件轉化為JSON字串。

    例如:

    var last=obj.toJSONString(); //將JSON物件轉化為JSON字元

    或者

    var last=JSON.stringify(obj); //將JSON物件轉化為JSON字元

    alert(last);

    注意:

    上面的幾個方法中,除了eval()函式是js自帶的之外,其他的幾個方法都來自json.js包。新版本的 JSON 修改了 API,將 JSON.stringify() 和 JSON.parse() 兩個方法都注入到了 Javascript 的內建物件裡面,前者變成了 Object.toJSONString(),而後者變成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,則說明您的json包版本太低。

這個方法也可以用於JSON字串和JSON陣列的轉換