在ObjectsList的ObjectsList中的Linkedhashmap,获取数据

时间:2016-10-10 16:19:39

标签: java json

编辑: 我正在解析一个JSON。 JSON有这种形式

  {
     "responseObject": {
            "slots_0": [
                            { //SlotItem (date, string, int, boolean },
                            { //SlotItem } 
              ],               
           "slots_1": [
                            { //SlotItem (date, string, int, boolean },
                            { //SlotItem } 
                            { //SlotItem } 
              ]
     }, 
    "messages" : "Hi Stackoverflow"
}

我无法用slot_0,slot_1来解析我的响应,因为我可以有更多只有两个实际上我可以拥有slot_n,responseObject将是一个SlotItems数组的数组,如果我没错。

我首先进行此解析(因为我只需要responseObject)

Hashmap <String, String> response = (Hashmap<String, String>) response.get("responseObject")

之后我尝试制作ArrayList<SlotItem []>

在编辑之前,我是这样尝试的:

我想要一个对象数组的ArrayList

ArrayList <SlotItem []> slotsinfo

在ArrayList中,我有这样的结构:
enter image description here

我想得到一个简单的ArrayList,而不是LinkedHashMap 因为我想以这种方式检索信息

String storeId = slotsinfo.get(index).getStoreId();

在SlotItem内部我有吸气剂和设定者。

我尝试使用get(index)检索列表中的数据,但它不起作用。

1 个答案:

答案 0 :(得分:1)

看起来你有ArrayList<LinkedHashMap<String, String>>,而不是ArrayList<SlotItem[]>

  

我想得到一个简单的ArrayList,而不是LinkedHashMap。因为我要   以这种方式检索信息

String storeId = slotsinfo.get(index).getStoreId();

好的,那么你需要修复,但是你得到的数据是ArrayList<SlotItem>

目前看来,你应该可以做到

result.get(index).get("storeId");

编辑

尝试获取这样的JSON,使responseObject成为数组数组

{
     "responseObject": [
              [
                   { //SlotItem (date, string, int, boolean },
                   { //SlotItem } 
              ],               
              [
                   { //SlotItem (date, string, int, boolean },
                   { //SlotItem } 
                   { //SlotItem } 
              ]
     ], 
    "messages" : "Hi Stackoverflow"
}