【发布时间】:2018-04-26 17:34:22
【问题描述】:
我想使用 gson 将包含 LocalDateTime 字段的 json 字符串反序列化到一个类中。
但这会引发空指针异常。
我的 JSON:
metrics": {
"measurements": [
{
"serviceName": "myService",
"start": {
"year": 2018,
"month": "APRIL",
"dayOfMonth": 26,
"dayOfWeek": "THURSDAY",
"dayOfYear": 116,
"monthValue": 4,
"hour": 18,
"minute": 53,
"second": 51,
"nano": 243000000,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
},
"stop": {
"year": 2018,
"month": "APRIL",
"dayOfMonth": 26,
"dayOfWeek": "THURSDAY",
"dayOfYear": 116,
"monthValue": 4,
"hour": 18,
"minute": 53,
"second": 51,
"nano": 841000000,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
},
"processingTime": 598
}
我用来获取对象的代码:
Metrics metrics = gson.fromJson(jsonString, Metrics.class);
但是 gson 只能反序列化我的对象的 processingTime 字段。
我也试过这个:
Java 8 LocalDateTime deserialized using Gson
但这会导致
Caused by: java.lang.IllegalStateException: This is not a JSON Primitive.
at com.google.gson.JsonElement.getAsJsonPrimitive(JsonElement.java:122)
at com.foo.config.AppConfig.lambda$gson$1(AppConfig.java:63)
有什么想法吗?
谢谢
【问题讨论】: