JSON序列化輸出 var xiaoming = { name: '小明', age: 14, gender: true, height: 1.65, grade: null, 'middle-school': '\"W3C\" Middle School', skills: ['JavaScrip ...
JSON序列化輸出
var xiaoming = { name: '小明', age: 14, gender: true, height: 1.65, grade: null, 'middle-school': '\"W3C\" Middle School', skills: ['JavaScript', 'Java', 'Python', 'Lisp'] };
//stringify()用於從一個對象解析出字元串
alert(JSON.stringify(xiaoming, '/n', ' ')); //換行,原樣輸出JSON,如果不加stringify()做處理會解析不出這個數據,處理結果為undefined
alert(JSON.stringify(xiaoming, ['height','age'], ' ')); //第二個參數可以選填 只顯示選中的數據,其他數據不顯示
function convert(key, value) { if (typeof value === 'string') { return value.toUpperCase(); //字元串的轉換為大寫 } return value; } console.log(JSON.stringify(xiaoming, convert, ' '));
可以直接用瀏覽器console控制台,把代碼複製進去看執行結果,這個結果是轉換大寫
精確控制如何序列化
//如果我們還想要精確控制如何序列化小明,可以給xiaoming定義一個toJSON()的方法,直接返回JSON應該序列化的數據:
var xiaoming = { name: '小明', age: 14, gender: true, height: 1.65, grade: null, 'middle-school': '\"W3C\" Middle School', skills: ['JavaScript', 'Java', 'Python', 'Lisp'], toJSON: function(){ //這是字面量的寫法 其他就用正常的函數寫即可, function toJSON(){return } return{ '姓名':'小明', '年齡':14 } } }; console.log(JSON.stringify(xiaoming));
反序列化(json解析)
console.log(JSON.parse('{"name":"小明","age":14}'));
var jsn = JSON.parse('{"name":"小明","age":14}', function (key, value) { if(key === 'name') { return value + '同學'; } return value; }); console.log(jsn);