1
我使用Gson包在Java中工作,以從/向Java類讀取/寫入Json。 Gson的主要特點之一是能夠與User Defined Strategies一起使用,可以通過編程方式定義哪些字段包含/排除。Javascript和Json:從序列化和反序列化中排除字段
這在服務器端很好用,但是Javascript /客戶端有類似的東西嗎?
我使用Gson包在Java中工作,以從/向Java類讀取/寫入Json。 Gson的主要特點之一是能夠與User Defined Strategies一起使用,可以通過編程方式定義哪些字段包含/排除。Javascript和Json:從序列化和反序列化中排除字段
這在服務器端很好用,但是Javascript /客戶端有類似的東西嗎?
JSON.stringify()
函數帶有一個可選的第二個參數,稱爲「替代者」。它可以是一個函數或一個數組,它指導序列化過程如何將值包含在正在構建的JSON字符串中。
如果該參數是一個函數,則會傳遞兩個參數key
(屬性名稱)和value
。如果鍵是被「字符串化」的「外部」對象的一部分,則this
值被排列爲undefined
,或者如果頂級對象下面的結構的一部分是對子對象的引用,則值被排列爲undefined
。如果鍵/值不應該包含在結果中,該函數可以返回undefined
。
如果該值是一個數組,它決定了要包含在結果中的頂級對象的屬性。
因此:
var obj = {
a: 1,
b: {
c: 2,
notMe: "super secret"
},
d: 3
};
var str = JSON.stringify(obj, function replacer(key, value) {
if (this && key === "notMe" && this.c === 2)
return undefined;
return value;
});
將導致包含字符串
{ "a": 1, "b": { "c": 2 }, "d": 3 }
的 「B」 對象的 「notMe」 屬性 「STR」 將被排除在外。