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"]
