JSON一般用于web頁面與服務器之間進行數據交換的數據格式,而今天就說一說 javascript 中將字符串,對象,數組轉化成為 json 格試字符串的方法。

JSON.stringify() 方法的定義

国产视频appJSON.stringify():方法用于將 JavaScript 值轉換為 JSON 字符串。

語法:

JSON.stringify(value, replacer, space)

參數:

value:將要被序列化成 一個JSON 字符串的值。

replacer:(可選)如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理;如果該參數是一個數組,則只有包含在這個數組中的屬性名才會被序列化到最終的 JSON 字符串中;如果該參數為null或者未提供,則對象所有的屬性都會被序列化;關于該參數更詳細的解釋和示例,請參考使用原生的 JSON 對象一文。

space:可選, 向返回值JSON 文本添加縮進、空格和換行符以使其更易于讀取。

(1)、如果省略space,則將生成返回值文本,而沒有任何額外空格。

国产视频app(2)、如果 space是一個數字,則返回值文本在每個級別縮進指定數目的空格。 如果 space 大于 10,則文本縮進 10 個空格。

(3)、如果 space是一個非空字符串(例如“\t”),則返回值文本在每個級別中縮進字符串中的字符。

国产视频app(4)、如果 space 是長度大于 10個字符的字符串,則使用前 10 個字符。

JSON.stringify() 方法的使用

例:利用 JSON.stringify() 方法將數組轉化為JSON字符串

国产视频app如果將 js 數組轉化為 JSON 字符串,則無需要設置 JSON.stringify() 方法的第二個或第三個參數,

示例代碼:

<script>
var data = [
    {
        name: "小明", sex: "男", age: 16
    },
    {
        name: "紅紅", sex: "女", age: 17
    },
    {
        name: "君君", sex: "男", age: 18
    },
    {
        name: "曉曉", sex: "女", age: 19
    }
]; 
var json = JSON.stringify(data);
console.log(json);
</script>

輸出結果:

[{"name":"小明","sex":"男","age":16},{"name":"紅紅","sex":"女","age":17},{"name":"君君","sex":"男","age":18},{"name":"曉曉","sex":"女","age":19}]

例:JSON.stringify() 方法將數組指定數組轉化為JSON字符串

如果將 js 數組中的指定部份轉化為 JSON 字符串,則只需要將第 JSON.stringify() 方法的第二個參數設置為數組即可,其數組中寫入要輸出的數組key即可。

示例代碼:

<script>
var data = [
    {
        name: "小明", sex: "男", age: 16
    },
    {
        name: "紅紅", sex: "女", age: 17
    },
    {
        name: "君君", sex: "男", age: 18
    },
    {
        name: "曉曉", sex: "女", age: 19
    }
]; 
//這里用到了 JSON.stringify() 方法的第二個參數
var json = JSON.stringify(data,['name']);
console.log(json);
</script>

輸出結果:

[{"name":"小明"},{"name":"紅紅"},{"name":"君君"},{"name":"曉曉"}]

例:JSON.stringify() 方法的第二個參數為函數時

示例代碼:

<script>
var arr = new Array();
arr[0] = "上海";
arr[1] = "北京";
arr[2] = "湖南";
arr[3] = "山東";
arr[4] = "青島";
//這里用到了 JSON.stringify() 方法的第二個參數為函數
var json = JSON.stringify(arr,function(key, value){
     return  value.toString().toUpperCase(); 
});
console.log(json);
</script>

輸出結果:

"上海,北京,湖南,山東,青島"

注:

toString():方法可把一個邏輯值轉換為字符串,并返回結果。

toUpperCase():方法用于把字符串轉換為大寫。

例:美化 JSON.stringify() 方法輸出的結果

示例代碼

<script>
var arr = new Array();
arr[0] = "ShangHai";
arr[1] = "BeiJing";
arr[2] = "HuNan";
arr[3] = "ShanDong";
arr[4] = "QingDao";
//這里用到了 JSON.stringify() 第三個參數,比如設置為 '\t'
var json = JSON.stringify(arr,null,'\t');
console.log(json);
</script>

輸出結果:

[
    "ShangHai",
    "BeiJing",
    "HuNan",
    "ShanDong",
    "QingDao"
]

国产视频appPS:此種方法,便于本地查看打印結果