我尝试从Json文件读取并将其迷惑为Java对象,我具有以下Java代码来读取Json:
class Item {
String name;
int itemId;
Date AddTime;
String group;
}
Gson gson = new Gson();
gson.fromJson(jsonFile, new TypeToken<Map<String, ArrayList<Item>>>() {}.getType());
Json文件包含以下数据:
{
"item1": [{
"name": "test1",
"itemId": "1",
"AddTime": "2018-09-05T10:35:56.015Z",
"group": "computer"
}, {
"name": "test2",
"itemId": "2",
"AddTime": "2018-09-05T10:35:56.016Z",
"group": "computer"
}, {
"name": "test3",
"itemId": "3",
"AddTime": "2018-09-05T10:35:56.017Z",
"group": "computer"
}],
"item2": [{
"name": "test4",
"itemId": "4",
"AddTime": "2018-09-05T10:35:56.015Z",
"group": "computer"
}, {
"name": "test5",
"itemId": "5",
"AddTime": "2018-09-05T10:35:56.016Z",
"group": "computer"
}, {
"name": "test6",
"itemId": "6",
"AddTime": "2018-09-05T10:35:56.017Z",
"group": "computer"
}]
}
我得到了以下内容:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1
我是Java新手,有什么问题以及如何解决?
答案 0 :(得分:0)
我不确定这是否是您需要的,但是我认为解决方案可能是这样的。
根据您的数据集。在每个项目的内部,都有一个带有测试的arrayList(test1,test2 ...),因此您将需要以下内容:
class Item {
ArrayList<Test> tests;
}
class Test{
String name;
int itemId;
Date AddTime;
String group;
}