Я пытаюсь преобразовать JSON в пользовательский компонент. Но я столкнулся с проблемой, когда значение даты в JSON равно нулю.Формат даты GSON - обработка нулевой даты в разборе JSON
Valid JSON String, он становится конвертируются с любым вопросом, как и от и до настоящего времени имеет значение:
{"title":"1201 Box Title 1","fromdate":"01/02/2017","description":"1201 Box Title 1","todate":"01/26/2017"}
JSON строковый с ошибкой: Где с даты пусто
{"title":"1201 Box Title 1","fromdate":"","description":"1201 Box Title 1","todate":"01/26/2017"}
Java код, используемый для инициализации:
Gson testGson = new GsonBuilder().setDateFormat("MM/dd/yyyy").create();
MyTestBean myTestBean = testGson.fromJson(jsonString, MyTestBean.class);
В атрибутах bean fromdate и todate указано dec Lared с «Дата» тип данных
Ошибка StackTrace:
Exception in thread "main" com.google.gson.JsonSyntaxException:
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:59)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:755)
at com.google.gson.Gson.fromJson(Gson.java:721)
at com.google.gson.Gson.fromJson(Gson.java:670)
at com.google.gson.Gson.fromJson(Gson.java:642)
at JSONConverter.main(JSONConverter.java:15)
Caused by: java.text.ParseException: Unparseable date: ""
at java.text.DateFormat.parse(DateFormat.java:366)
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:105)
... 10 more
Может кто-нибудь пожалуйста, дайте мне, как справиться с этой проблемой в правильном направлении.
Один из способов я пытаюсь преодолеть проблему, как показано ниже, но хотели бы знать, если есть какие-либо встроенные опции в GSON itsself для обработки даты нулевой:
- Declare от и до даты в бобе как строка типа данных
- Напишите метод пользовательского геттер в бобе, который будет делать синтаксический до возвращения даты, которая будет использоваться код, используя этот компонент
У вас есть пустая строка, а не 'null' –
Означает ли это, что если мы пройдем null, GSON позаботится об этом? – Vinay
Наверное, нет. Вы можете получить исключение NullPointerException вместо ParseException –