簡體   English   中英

如何使用Java和Gson從Json獲取對象列表

[英]How to get the list of objects from Json using Java and Gson

我嘗試從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新手,有什么問題以及如何解決?

我不確定這是否是您需要的,但是我認為解決方案可能是這樣的。

根據您的數據集。 在每個項目的內部,都有一個帶有測試的arrayList(test1,test2 ...),因此您將需要以下內容:

    class Item {
       ArrayList<Test> tests;
    }

    class Test{
       String name;
       int itemId;
       Date AddTime;
       String group;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM