我正在尝试为解析来自 Google HTTP 客户端请求的 JSON 对象设置日期格式。由于日期格式问题,我尝试直接解析为对象的行request.execute().parseAs(..)
不起作用。对象返回时没有任何值。下面的两行工作得很好,因为我可以设置日期格式。有没有办法以某种方式在 GsonFactory 上设置日期格式?
public class Main {
static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
static final JsonFactory JSON_FACTORY = new GsonFactory();
public static void main(String[] args) throws IOException {
HttpRequestFactory requestFactory =
HTTP_TRANSPORT.createRequestFactory(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) {
request.setParser(new JsonObjectParser(JSON_FACTORY));
}
});
SomeURL url = new SomeURL("");
HttpRequest request = requestFactory.buildGetRequest(url);
MatchBlock[] blocks = request.execute().parseAs(MatchBlock[].class);
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create();
MatchBlock[] blocks2 = gson.fromJson(request.execute().parseAsString(),MatchBlock[].class);
}
}
代码主要是从这里提取的:示例。我已经尝试过 JacksonFactory 和 GsonFactory,包括在使用 Jackson 时使用 @JsonFormat 注释,似乎都不起作用。
我应该先解析为字符串,然后再解析为 JSON 对象,而不是尝试使用 parseAs 进行解析吗?似乎效率较低。