1. 程式人生 > >關於JSON.stringify()的用法

關於JSON.stringify()的用法

寫頁面的時候一直沒整明白為什麼嗎物件格式的要通過JSON.stringify()這個方法轉一下有什麼好處,最近看其它的部落格get到一些實用的技巧

第一種:在陣列中提取資料

var data = [{
            name: "程咬金",
            sex: "1",
            age: 26
        },
        {
            name: "程才",
            sex: "0",
            age: 20
        },
        {
            name: "程新鬆"
, sex: "1", age: 22 }, { name: "程功", sex: "1", age: 18 } ]; 如果這裡我們只想提取name 和 sex 我們常用的方法可能是 var new_data = JSON.stringify(data,['name','sex']); console.log(new_data); 輸出結果 [{"name":"程咬金","sex"
:"1"},{"name":"程才","sex":"0"},{"name":"程新鬆","sex":"1"},{"name":"程功","sex":"1"}]

第二種用法:修改資料
例如我們要把sex為0改為女 sex為1改為男

var str_json = JSON.stringify(data,function(key,value){
    if(key == 'sex'){
        return ["女",'男'][value];
    }
    return value;
});
console.log(str_json);
輸出結果
[{"name":"程咬金","sex"
:"男","age":26},{"name":"程才","sex":"女","age":20},{"name":"程新鬆","sex":"男","age":22},{"name":"程功","sex":"男","age":18}] value的值是data中物件sex的值,而這個['女','男']陣列,是根據[value]的索引對應到[‘女’,‘男’],也就是說當value0,[value]即為[0],對應到陣列['女','男']的索引0,值即為‘女’。比如我定義8--男,9--女; var data =[ { name: "程咬金",sex:"8",age:26 }, { name: "程才",sex:"9",age:20 }, { name: "程新鬆",sex:"8",age:22 }, { name: "程功",sex:"8",age:18 } ]; /*回撥函式做一個對映關係*/ var str_json = JSON.stringify(data,function(key,value){ if(key == 'sex'){ return ['男','女'][value-8]; } return value; }); console.log(str_json);