使用 Gson 获取 MalformedJsonException 错误
Getting MalformedJsonException error with Gson
我正在尝试使用代码将字符串转换为 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}
我找不到它有什么问题。
您的字符串看起来不像 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
我正在尝试使用代码将字符串转换为 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}
我找不到它有什么问题。
您的字符串看起来不像 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