json對象與字符串的相互轉換,數組和字符串的轉換


1.json對象轉換為字符串

JSON.stringify(value [, replacer] [, space]) 

var student = new Object();

student.id = "001";

student.name = "程陳";

student.age = "18";

var str = JSON.stringify(student);

//{"id":"001","name":"程陳","age":"18"}

var str1 = JSON.stringify(student,["id"],"ok");

//{
//ok"id": "001"
//}

var data = [
{ name: "小紅", sex: 1, age: 10 },
{ name: "小明", sex: 0, age: 10 },
{ name: "小華", sex: 1, age: 30 }
];
var str_json = JSON.stringify(data, function (k, v) {
if (k === "sex") {
return ["女", "男"][v];
}
return v;
});

//[{"name":"小紅","sex":"男","age":10},{"name":"小明","sex":"女","age":10},{"name":"小華","sex":"男","age":30}]

replacer : 使用來過濾的,可以出來數組和函數

情況一:replacer為數組時,通過后面的實驗可以知道,它是和第一個參數value有關系的。一般來說,系列化后的結果是通過鍵值對來進行表示的。 所以,如果此時第二個參數的值在第一個存在,那么就以第二個參數的值做key,第一個參數的值為value進行表示,如果不存在,就忽略。

  情況二:replacer為方法時,那很簡單,就是說把系列化后的每一個對象(記住是每一個)傳進方法里面進行處理。

     space:就是用什么來做分隔符的。 

  1)如果省略的話,那么顯示出來的值就沒有分隔符,直接輸出來 。
  2)如果是一個數字的話,那么它就定義縮進幾個字符,當然如果大於10 ,則默認為10,因為最大值為10。
  3)如果是一些轉義字符,比如“\t”,表示回車,那么它每行一個回車。 
  4)如果僅僅是字符串,就在每行輸出值的時候把這些字符串附加上去。當然,最大長度也是10個字符。 

2.字符串轉換為json 對象

var str2 = '{"abc":"123","bcd":"234"}';//每個屬性都要用雙引號括起來;不然會有異常

var obj = JSON.parse(str2);

//Object {abc: "123", bcd: "234"}

3.數組轉換為字符串

var arr = ["aaa","bbb","ccc","ddd"];

var str4 = arr.join(","); 

//aaa,bbb,ccc,ddd

 

4.字符串轉換為數組

var str5 = "123,234,345,456";
var arr1 = str5.split(",");
console.log(arr1);

//["123", "234", "345", "456"]


免責聲明!

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



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