【发布时间】:2019-10-07 14:30:50
【问题描述】:
我有以下 json 文件
[{
"en": {
"key1": "Ap",
"key2": "ap2"
}
},
{
"ar": {
"key1": "Ap",
"key2": "ap2"
}
}
]
我想在 Java 中创建一个 Map,例如键是语言(如 en 或 ar),值是对象。像这样。
public class Category {
private String key1;
private String key2;
}
Type type = new TypeToken<Map<String, Category>>() {}.getType();
Gson gson = new Gson();
InputStream in = MyClass.class.getResourceAsStream("/categories.json");
String text = IOUtils.toString(in, StandardCharsets.UTF_8);
Map<String, Category> map = gson.fromJson(text, type);
但是当我运行这段代码时,我得到了错误:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 3 path $[0]
我的 Json 结构是错误的还是有更简单的方法来映射它?
【问题讨论】:
标签: java dictionary gson