Google Http Java客户端解析到枚举
因此,我知道可以使用注释将json值解析到枚举中,但是如果json中的值与使用Google Http Java客户端解析到枚举,java,json,Java,Json,因此,我知道可以使用注释将json值解析到枚举中,但是如果json中的值与使用@value注释的任何值不匹配,会发生什么行为。例如,假设一个api决定添加一个客户端不知道的新类型。它的值是否设置为null,或者是否存在异常?有没有办法将枚举值设置为默认的“全部捕获”值?根据,您将获得NullPointerException 编辑 参考内容: 我有一个名为Job的对象,其枚举字段statusCode包含 应用程序编程接口。只要 枚举处理所有可能返回的值 状态\代码字段,json解析工作正常 pub
@value
注释的任何值不匹配,会发生什么行为。例如,假设一个api决定添加一个客户端不知道的新类型。它的值是否设置为null,或者是否存在异常?有没有办法将枚举值设置为默认的“全部捕获”值?根据,您将获得NullPointerException
编辑
参考内容:
我有一个名为Job的对象,其枚举字段statusCode包含
应用程序编程接口。只要
枚举处理所有可能返回的值
状态\代码字段,json解析工作正常
public static class Job {
@Key("status_code")
public JobStatus statusCode;
}
public enum JobStatus {
@Value("starting")
STARTING
}
但是,如果在该字段中返回未知值,则得到
NullPointerException:
java.lang.NullPointerException
at com.google.api.client.util.Data.parsePrimitiveValue(Data.java:445)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:795)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:438)
at com.google.api.client.json.JsonParser.parseValue(JsonParser.java:745)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:358)
at com.google.api.client.json.JsonParser.parse(JsonParser.java:331)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87)
at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
at com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459)
我希望这个代码是健壮的,这样如果一个未知的值
返回时,它将被视为null,而不是抛出
异常,不返回作业对象。有什么办法吗
这个
为什么不使用类似的工具呢?一切都已经存在了。或者,如果您想保存并读回对象,您可以不用编写自己的解析器?它们的javadoc非常简单,但似乎建议使用名为
而不是的枚举值作为总括。如果您定义了其中一个,会发生什么?请在答案中包含更多细节。如果链接页面被删除或变得不可访问,则此仅链接的答案将变得不相关。