java - 使用 Gson 出现 MalformedJsonException 错误
问题描述
我正在尝试将字符串转换为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
推荐阅读
- java - Spring-boot rest api当前请求不是邮递员的多部分请求
- r - 从 R 中的双义关系数据框中导出第三方亲属关系
- mysql - MySQL - 即使连接为空也检索结果
- msbuild - 如何在 vNext TFS 构建中将首选项调试设置为在发布之前首先运行?
- javascript - 如何使用 .filter() 访问 JSON 密钥
- amazon-web-services - 如何将某些国家的用户的流量引导到正确的服务器?
- node.js - 授权空端点 Bot Azure
- reactjs - redux 中的状态解构问题
- r - 为什么我的 for 循环在每次迭代中使用 rbind 后只返回 1 行?
- javascript - 通过js在html中复制一些