GSON 解析 HashMap 为相同位置的 List

GSON parse HashMap to List with same positions

例如我有 json:

{
   "1" : {...}, 
   "5" : {...}, 
   "2" : {...}
}

我想将其解析为具有相同元素位置的列表:

所以 id = "1" 的元素将在列表中的第 0 个位置,id="5" 的第 1 个位置,id="2" 的第 2 个位置。

如果我这样做:

HashMap<String, Object> res  = gson.fromJson(data.toString(), new TypeToken<HashMap<String, <MyClass>>() {}.getType());

然后使用迭代器获取元素并添加到列表中:

Set<Map.Entry<String, Object>> set = res.entrySet();
Iterator<Map.Entry<String, Object>> iterator = set.iterator();
while (iterator.hasNext()) {
      mMyList.add(0, (MyClass)entry.getValue());
}

我将拥有与输入中不同的元素位置 json。

如果我尝试这样解析:

HashMap<String, JsonObject> threadsJSON = new HashMap<String, JsonObject>();
resJSON = gson.fromJson(data.toString(), new TypeToken<HashMap<String, JsonObject>>() {}.getType());
List<MyClass> msgs = new ArrayList<MyClass>();


Iterator itr = res.keySet().iterator();
while (itr.hasNext()) {
   String keyId = itr.next().toString();
    msgs.add(gson.fromJson(resJSON.get(keyId), MyClass.class));
 }

我将采用与输入中不同的位置的列表 json。

那么,我应该如何解析 json 以使输出列表中的元素位置相同?

HashMap 不保证迭代顺序。尝试使用 LinkedHashMap(保证 属性)。