如何让Gson解析JSON时对未知字段抛出异常?
如何让Gson解析JSON时对未知字段抛出异常?
Gson默认会忽略JSON中Java类未定义的字段,不会抛出异常。比如你定义的Java类:
class Dog { int legs; }
待解析的JSON包含类中未定义的heads字段:
{ "legs": 5, "heads": 3 }
使用默认new Gson().fromJson(json, Dog.class)解析时,不会触发任何异常。
要强制开启未知字段检查,需要通过GsonBuilder构建Gson实例时开启failOnUnknownProperties选项:
Gson gson = new GsonBuilder() .setFailOnUnknownProperties(true) .create(); gson.fromJson(json, Dog.class);
此时解析包含未知字段的JSON时,会抛出com.google.gson.JsonSyntaxException异常,提示存在未识别的字段。
该配置为全局生效,所有使用此Gson实例的解析操作都会严格检查未知字段。若需针对特定类做差异化处理,可结合@Expose注解或自定义ExclusionStrategy实现更精细的控制。
另外,Gson官方仓库中曾针对该需求展开讨论,核心解决方案即为上述配置方式。
内容的提问来源于stack exchange,提问作者dzieciou
相关产品推荐
相关产品推荐

