標籤:style blog http io ar color sp java on
來源 : http://javascript.ruanyifeng.com/stdlib/date.html
//解析json也可以傳入一個方法, 基本上和stringify差不多,不過是逆序的, 要注意key = "" 的return ,基本上返回 value就好 //自己做一個test比較好理解 function f(key, value) { //console.log(key); //console.log(value); if (key === "") { return value; } return { age: 12 }; } var o1 = { name: "keatkeat", array: ["a", "b"] } var o = JSON.parse(JSON.stringify(o1), f); console.log(o); //第2個參數數組的話,可以針對obj 過濾出我們指定想要的屬性 //第2參數是函數的話,會梯歸執行坎套的對象和數組,返回undefined的話這個屬性將被忽略 //這個 key value 迴圈包括 對象(key="",value=object),數組(key="",value=array),對象內的每一個屬性(key=attr,value=value),數組中的每一個值(key=0, value=value) //return 的value 將繼續被梯歸下去,比如你把一個string 變成 return一個對象,它也會梯歸處理這個對象 (所以要注意循環參考) //如果處理的是一個對象而且它擁有 toJSON 這個方法的話,那麼將會調用它來擷取return value (比如js Date就帶有這個方法) //自己做一個test就容易理解了。 //第3個參數可以做美美的JSON JSON.stringify(obj, function (key, value) { console.log(key); console.log(value); //自訂處理的話,要顧慮到這個哦 if (value.toJSON) { return value.toJSON(); } return value; }, " "); JSON.stringify(obj, ["onlyThisAttrWant"], " ");
JSON stringify and parse