java .util.concurrent.ExecutionException: com.google.gson.JsonSyntaxException: 2020-01-15 15: 13: 42.0 - PullRequest
3 голосов
/ 27 января 2020

Я отправляю данные с помощью Gson и преобразую JSON в объект с помощью библиотеки Gson.

JSON Данные -

{
   "map":{
      "date":"2020-01-15 15:13:42.0",
      "botType":1,
      "botName":"ds",
      "id":62,
      "userId":1,
      "accountKey":"dcab171a-b6cc-4583-b5fc-3e996100725a",
      "status":0
   }
}

и класс преобразования данных это:

public class DateConverter {
    @TypeConverter
    public static Date toDate(Long timestamp) {
        return timestamp == null ? null : new Date(timestamp);
    }

    @TypeConverter
    public static Long toTimestamp(Date date) {
        return date == null ? null : date.getTime();
    }
}

У меня проблема с получением данных с сервера в android и ошибка вроде:

01-27 15:47:00.506 2070-2070/xxx.xx.xxxxx.android W/System.err: java.util.concurrent.ExecutionException: com.google.gson.JsonSyntaxException: 2020-01-15 15:13:42.0
01-27 15:47:00.506 2070-2070/xxx.xx.xxxxx.android W/System.err:     at java.util.concurrent.FutureTask.report(FutureTask.java:93)
01-27 15:47:00.506 2070-2070/xxx.xx.xxxxx.android W/System.err:     at java.util.concurrent.FutureTask.get(FutureTask.java:163)
01-27 15:47:00.506 2070-2070/xxx.xx.xxxxx.android W/System.err:     at android.os.AsyncTask.get(AsyncTask.java:483)

Код отправителя:

objectOutputStream = new ObjectOutputStream(response.getOutputStream());
                    objectOutputStream.writeObject(new Gson().toJson((JSONObject) messageForClient.getT()));

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Используйте это:

new GsonBuilder().setDateFormat("yyyy-MM-DD HH:mm:ss").create().fromJson(string , YourObject.class);

Ваш формат: "гггг-мм-дд чч: мм: сс"

1 голос
/ 27 января 2020

При создании экземпляра Gson укажите формат даты.

Например:

Gson gson = new GsonBuilder()
   .setDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").create();

Попробуйте изменить формат строки в соответствии с вашим синтаксисом даты .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...