编辑: 我正在解析一个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,而不是LinkedHashMap 因为我想以这种方式检索信息
String storeId = slotsinfo.get(index).getStoreId();
在SlotItem内部我有吸气剂和设定者。
我尝试使用get(index)检索列表中的数据,但它不起作用。
答案 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"
}