js中JSON數據轉換成字符串,可以使用JSON.stringify()方法。
var obj = {name: "張三", age: 18, gender: "男"};
var jsonString = JSON.stringify(obj);
console.log(jsonString); // 輸出 {"name":"張三","age":18,"gender":"男"}
另外,JSON.stringify()方法還支持第二個參數,用來控制生成的JSON字符串的格式。其中最常用的參數是一個數組,定義了需要排除的屬性名:
var obj = {name: "張三", age: 18, gender: "男"};
var jsonString = JSON.stringify(obj, ["gender"]);
console.log(jsonString); // 輸出 {"name":"張三","age":18}
在上面的代碼中,我們傳入了一個數組,數組中指定了需要排除的屬性名。生成的JSON字符串中就沒有了gender屬性。需要注意的是,如果傳入的不是一個數組,而是一個函數,這個函數需要返回一個新的值,用來替換需要轉換成JSON字符串的原始值。
var obj = {name: "zhangsan", age: 18, gender: "男"};
function replacer(key, value) {if (typeof value === "string") {return value.toUpperCase();}return value;
}
var jsonString = JSON.stringify(obj, replacer);
console.log(jsonString); // 輸出 {"name":"ZHANGSAN","age":18,"gender":"男"}
在上面的代碼中,我們定義了一個函數replacer,這個函數接收兩個參數,即屬性名和屬性值。如果屬性值是字符串類型,就把它轉換成大寫字母。最后我們傳入這個函數作為JSON.stringify()的第二個參數,生成的JSON字符串中的字符串會變成大寫字母。