js json JSON.stringify 語法講解

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」);//

相關文章
相關標籤/搜索