8

我有一些 JSON,其中包含一个名为“type”的键。该键的值可以是includeexclude。我想将 Gson 配置为不反序列化 Json,并在键值为exclude.

我意识到我可以编写一个自定义反序列化器,检查适当的,并创建或不创建对象。但是,我不确定是否有另一种使用某种排除策略的方法。

我概述的示例过于简单。我真正的 JSON 包含更多字段。

// Deserialize me
{     
   "type" : "include"
}

// Skip over me, and do not deserialize
{
   "type" : "exclude"
}
4

2 回答 2

0

这可能会帮助你...

Gson gson = new Gson();
JsonObject jsonObj = gson.fromJson (jsonStr, JsonElement.class).getAsJsonObject();

// Just read the required field
if(jsonObj.get("type").getAsString().equals("include")) {
    // Continue parsing/deserializing other details
} else {
    // Skip
}

您可以参考Gson API 文档

于 2014-02-10T13:13:58.340 回答
0

我不认为ExclusionStrategy这里可以提供帮助。它适用于类而不是实例,并且在处理实例时,只存在其评估的结果(如果您想查看代码,请参阅 参考资料ReflectiveTypeAdapterFactory.BoundField)。

于 2012-08-01T13:55:10.423 回答