JSON.stringify()

JSON.stringify()是Javascript中一個常用的內置 JSON 轉換方法,JSON.stringify()可以把JSONObject 轉化為 JSON 規則的字符串轉換為,JSON.stringify()很方便,并且幾乎支持所有瀏覽器。

JSON.stringify() 語法

JSON.stringify(value[, replacer[, space]])

JSON.stringify() 參數說明

參數 參數說明 備注
value 將要序列化成 一個JSON 字符串的值。 必選
replacer 如果是一個function,那么每個序列化成JSON的value都會經過這個function,如果是一個Array,那么序列化后的JSON字符串中的Key在這個數組中才會加入到返回的JSON 字符串中去。 可選
space 用于美化JSON字符串,如果是一個Number類型,代表的就是多少個空格。如果是0或者小于0,那么就是沒有空格(和不填此項沒有區別),如果是字符串,那么直接填充。 可選

JSON.stringify() 返回值說明

返回值是一個 JSON字符串,如:"{"domain":"sojson.com"}"

JSON.stringify() JSON To String

測試樣例如下:

var json = {"domain" : "sojson.com","author":"soso"}

它就是一個正常的JSON對象,我們需要把它轉換成字符串,這個時候JSON.stringify() 就可以派上用場了。

var json = {"domain" : "sojson.com","author":"soso"}
alert(JSON.stringify(json));

其實它外層是有一對雙引號包裹起來的。也就是實際是這樣的"{"domain" : "sojson.com","author":"soso"}"。

JSON.stringify() replacer參數(1)

replacer參數可以是function,也可以是Array,如果是function,他接收的參數有2個,第一個是Key,第二個是Value。

replacer function返回值說明:

  • 如果返回一個 Number, 轉換成相應的字符串被添加入JSON字符串。
  • 如果返回一個 String, 該字符串作為屬性值被添加入JSON。
  • 如果返回一個 Boolean, "true" 或者 "false"被作為屬性值被添加入JSON字符串。
  • 如果返回undefined,該屬性值不會在JSON字符串中輸出。
var json = {"domain" : "sojson.com","author":"soso"}
json = JSON.stringify(json, function(key,value){
	if(key == "domain"){
		return undefined;//踢出domain
	};
    return value;
});

JSON.stringify() replacer參數(2)

如參數replacer是一個數組,序列化結果集的Key只輸出命中的,miss的屬性過濾。

replacer Array參數:

var json = {"domain" : "sojson.com","author":"soso"}
json = JSON.stringify(json, ['author']);
 alert("JSON = " + json);//結果只留下了命中Key的元素組合。

JSON.stringify() space 參數(1) / JSON 格式化

space參數前面也說了,是用來美化輸JSON的。

space 每個元素前面都間隔10個空格:

var json = {"domain" : "sojson.com","author":"soso"}
alert(JSON.stringify(json,null,10));

space 也可以用‘tab’來定制空格美化輸出,采用“\t”即可,如:

JSON.stringify({"domain" : "sojson.com","author":"soso"},null,'\t')

JSON.stringify() space 參數(2)

space 增加固定的字符串。

var json = {"domain" : "sojson.com","author":"soso"}
alert(JSON.stringify(json,null,"我是sojson"));

JSON.stringify() 其他常用展示

JSON.stringify({});                     // '{}'
JSON.stringify(true);                   // 'true'
JSON.stringify("sojson");               // '"sojson"'
JSON.stringify([1, "false", false]);    // '[1,"false",false]'
JSON.stringify({ abc: 5 });             // '{"abc":5}'
JSON.stringify({x: 5, y: 6});           // "{"x":5,"y":6}"

JSON.stringify([new Number(1), new String("false"), new Boolean(false)]);// '[1,"false",false]'

JSON.stringify({x: undefined, y: Object, z: Symbol("")});  // '{}'

JSON.stringify([undefined, Object, Symbol("")]);  // '[null,null,null]'

JSON.stringify({[Symbol("sojson")]: "sojson"});    // '{}'

JSON.stringify({[Symbol.for("sojson")]: "sojson"}, [Symbol.for("sojson")]); // '{}'

JSON.stringify() 瀏覽器支持問題

  • Firefox 3.5 + (目前已經50+版本了)
  • Internet Explorer 8 +(這個...)
  • Chrome(一直支持)
  • Opera 10 +
  • Safari 4 +
支付掃碼

所有贊助/開支都講公開明細,用于網站維護:贊助名單查看

正在加載... ...

四川快乐12开奖结果查询