JSON.stringify 語法講解html
http://blog.sina.com.cn/s/blog_6a22555a010161tx.htmljson
開始用實例說明;數組
1.只有一個參數的狀況下:函數
var student =
new
Object();
student.name =
"Lanny"
;
student.age =
"25"
;
student.location =
"China"
;
var json = JSON.stringify(student);
alert(student);
|
結果以下:spa
有些人可能會懷疑JSON.stringify的做用,OK。那假如,咱們不要這個函數。代碼下面的樣子:code
var student =
new
Object();
student.name =
"Lanny"
;
student.age =
"25"
;
student.location =
"China"
;
// var json = JSON.stringify(student);
alert(student);
|
恭喜你 獲得的結果是:htm
沒騙你吧,繼續。對象
2.第二個參數存在,而且第二個參數仍是function的時候blog
var students =
new
Array() ;
students[0] =
"Lanny"
;
students[1] =
"dong"
;
students[2] =
"I love you"
;
var json = JSON.stringify(students,switchUpper);
function switchUpper(key, value) {
return
value.toString().toUpperCase();
}
alert(json);
|
//var json = JSON.stringify(students, function (key,value) { |
//return value.toString().toUpperCase(); |
//}); |
上面的方法也能夠換成下面的,2個都是同樣,只是寫法有那麼一點點的不同而已。 |
獲得結果以下:ci
3.第二個參數存在,而且第二個參數不是function,而是數組的時候。
3.1 【誤區】若是第一個參數是數組,第二個參數也是數組的話,只顯示第一個參數的值。
好比:
var students =
new
Array() ;
students[0] =
"Lanny"
;
students[1] =
"dong"
;
students[2] =
"I love you"
;
var stu =
new
Array();
stu[0] =
"1"
;
stu[1] =
"2"
;
var json = JSON.stringify(students,stu);
alert(json);
|
sorry 獲得的結果就是:
第二個被忽略了,只是第一個被系列化了。
3.2 若是第一個是對象(這裏說的對象就像在C#裏面能夠進行new的),第二個是數組的。
那麼若是第二個的value在第一個存在,那麼的話就以第二個的值作key,第一個值爲value進行表示
var student =
new
Object();
student.qq =
"5485891512"
;
student.name =
"Lanny"
;
student.age = 25;
var stu =
new
Array();
stu[0] =
"qq"
;
stu[1] =
"age"
;
stu[2] =
"Hi"
;
//這個student對象裏不存在。
var json = JSON.stringify(student,stu);
alert(json);
|
獲得的結果以下:
由於stu[2] = "Hi";這個Hi 在第一個找不到,因此就不進行顯示了。
4.第三個參數
4.1.若是省略的話,那麼顯示出來的值 就沒有分隔符。直接輸出來
好比:
var student =
new
Object();
student.qq =
"5485891512"
;
student.name =
"Lanny"
;
student.age = 25;
var stu =
new
Array();
stu[0] =
"qq"
;
stu[1] =
"age"
;
stu[2] =
"Hi"
;
var json = JSON.stringify(student,stu);
alert(json);
|
輸出的就是:
4.2.若是是一個數字的話,那麼它就定義縮進幾個字符,固然 若是大於10 ,則最大值爲10.
var student =
new
Object();
student.qq =
"5485891512"
;
student.name =
"Lanny"
;
student.age = 25;
var stu =
new
Array();
stu[0] =
"qq"
;
stu[1] =
"age"
;
stu[2] =
"Hi"
;
var json = JSON.stringify(student,stu,100);
//注意這裏的100
alert(json);
|
那麼獲得的是:
空開來了10個字符。
4.3.若是是一些轉義字符,好比「\t」,表示回車,那麼它每行一個回車。
也是同樣。
4.4.若是僅僅是字符串,OK,就在每行輸出值的時候把這些字符串附加上去就OK。固然,最大長度也是10個字符。
若是是var json = JSON.stringify(student,stu,「HaiKou」);//