Ошибка MalformedJsonException с Gson - PullRequest
       5

Ошибка MalformedJsonException с Gson

0 голосов
/ 19 февраля 2020

Я пытаюсь преобразовать строку в Map<Integer,String>, используя код:

public static <T, R> HashMap<T, R> strMapToHashmap(String strMap) {
    Gson gson = new GsonBuilder().create();
    Type type = new TypeToken<HashMap<T, R>>() {
    }.getType();
    return gson.fromJson(strMap, type);
}

и получая ошибку ниже:

Caused by: com.google.gson.stream.MalformedJsonException: Unexpected value at line 1 column 5 path $.
    at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:564)
    at com.google.gson.stream.JsonReader.peek(JsonReader.java:425)
    at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:55)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
    at com.google.gson.Gson.fromJson(Gson.java:927)
    at com.google.gson.Gson.fromJson(Gson.java:892) 
    at com.google.gson.Gson.fromJson(Gson.java:841)`

и строка, которую я передал ей:

{4=, 1=3:00 pm–4:00 pm, 7=, 6=2:00 am–3:00 am, 5=8:00 am–9:00 am, 3=1:00 am–2:00 am, 2=9:00 am–10:00 am} 

Я не мог выяснить, что с ним не так.

1 Ответ

0 голосов
/ 19 февраля 2020

Ваша строка не похожа на JSON. Попробуйте передать

{
    "4": "",
    "1": "3:00 pm–4:00 pm",
    "7": "",
    "6": "2:00 am–3:00 am",
    "5": "8:00 am–9:00 am",
    "3": "1:00 am–2:00 am",
    "2": "9:00 am–10:00 am"
}

Я не уверен, что это то, что вам нужно, но Gson в основном используется для разбора jsons

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