技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

用JSON.stringify()轉(zhuǎn)換字符串時(shí)加過(guò)濾函數(shù)只保留數(shù)值項(xiàng)

作者:admin    時(shí)間:2022-3-30 19:23:16    瀏覽:

JSON.stringify()轉(zhuǎn)換字符串時(shí),我們可以加一個(gè)過(guò)濾函數(shù),最終返回的結(jié)果只保留數(shù)值項(xiàng),或某些特定內(nèi)容的項(xiàng)。

這個(gè)功能非常好用,因?yàn)槲覀冇袝r(shí)并不需要所有的字符串結(jié)果,我們更想直接得到我們想要的內(nèi)容。

這就是使用了 replacer 方法。

用JSON.stringify()轉(zhuǎn)換字符串時(shí)加過(guò)濾函數(shù)只保留數(shù)值項(xiàng)

例子(function)

function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer);

結(jié)果為

{"week":45,"month":7}

從這個(gè)結(jié)果,我們成功只保留了我們想要的內(nèi)容項(xiàng),把不需要的項(xiàng)移除了。

replacer參數(shù)

replacer 參數(shù)可以是一個(gè)函數(shù)或者一個(gè)數(shù)組。作為函數(shù),它有兩個(gè)參數(shù),鍵(key)和值(value),它們都會(huì)被序列化。

在開(kāi)始時(shí), replacer 函數(shù)會(huì)被傳入一個(gè)空字符串作為 key 值,代表著要被 stringify 的這個(gè)對(duì)象。隨后每個(gè)對(duì)象或數(shù)組上的屬性會(huì)被依次傳入。

函數(shù)應(yīng)當(dāng)返回JSON字符串中的value, 如下所示:

  • 如果返回一個(gè) Number,轉(zhuǎn)換成相應(yīng)的字符串作為屬性值被添加入 JSON 字符串。
  • 如果返回一個(gè) String,該字符串作為屬性值被添加入 JSON 字符串。
  • 如果返回一個(gè) Boolean, "true" 或者 "false" 作為屬性值被添加入 JSON 字符串。
  • 如果返回任何其他對(duì)象,該對(duì)象遞歸地序列化成 JSON 字符串,對(duì)每個(gè)屬性調(diào)用 replacer 方法。除非該對(duì)象是一個(gè)函數(shù),這種情況將不會(huì)被序列化成 JSON 字符串。
  • 如果返回 undefined,該屬性值不會(huì)在 JSON 字符串中輸出。

注意:不能用 replacer 方法,從數(shù)組中移除值(values),如若返回 undefined 或者一個(gè)函數(shù),將會(huì)被 null 取代。

例子(array)

如果 replacer 是一個(gè)數(shù)組,數(shù)組的值代表將被序列化成 JSON 字符串的屬性名。

JSON.stringify(foo, ['week', 'month']);
// '{"week":45,"month":7}', 只保留 “week” 和 “month” 屬性值。

您可能對(duì)以下文章也感興趣

標(biāo)簽: JSON  JSON.stringify  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */