我使用Gson包在Java中从/向Java类读取/写入Json。 Gson的主要功能之一是能够使用User Defined Strategies,可以以编程方式定义要包含/排除哪些字段。
这在服务器端很有用,但Javascript /客户端有类似的东西吗?
答案 0 :(得分:1)
JSON.stringify()
函数采用可选的第二个参数,称为" replacer"。它可以是函数或数组,它指导序列化过程,以确定如何将值包含在正在构造的JSON字符串中。
如果参数是函数,它传递了两个参数,key
(属性名称)和value
。如果密钥是"外部"的一部分,this
值将被安排为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;
});
将导致" str"包含字符串
{ "a": 1, "b": { "c": 2 }, "d": 3 }
" notMe" " b"的属性对象将被排除在外。