【发布时间】:2014-10-31 23:05:45
【问题描述】:
我在 Java 中使用 Gson 包从 Java 类读取/写入 Json。 Gson 的主要功能之一是能够与 User Defined Strategies 一起工作,它可以通过编程方式定义要包含/排除的字段。
这在服务器端很有效,但是对于 Javascript/客户端有类似的东西吗?
【问题讨论】:
标签: java javascript json gson
我在 Java 中使用 Gson 包从 Java 类读取/写入 Json。 Gson 的主要功能之一是能够与 User Defined Strategies 一起工作,它可以通过编程方式定义要包含/排除的字段。
这在服务器端很有效,但是对于 Javascript/客户端有类似的东西吗?
【问题讨论】:
标签: java javascript json gson
JSON.stringify() 函数采用称为“替换器”的可选第二个参数。它可以是一个函数或一个数组,它指导序列化过程如何将值包含在正在构造的 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 }
“b”对象的“notMe”属性将被排除。
【讨论】: