我尝试使用gson将Java Map(带有MyClass值列表)转换为json。
Map<Integer, List<MyClass>> myMap
以下是我的表现......
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
String json = gson.toJson(myMap);
System.out.println(json);
它产生的json接近但不是我期望/想要的格式。以下是制作的内容:
{&#34; 0&#34;:[{MyClassItem1},{MyClassItem2}等],&#34; 1&#34;:[{MyClassItem3}, {MyClassItem4}等等......}
我希望/更喜欢它产生:
[{&#34; 0&#34;:[{MyClassItem1},{MyClassItem2}等]},{&#34; 1&#34;:[{MyClassItem3}, {MyClassItem4}等,等等......]
这可能吗?如果是这样,怎么样?
答案 0 :(得分:0)
嗯...... Gson将数据序列化为最合适的形式。您似乎想要一个Map.Entry
数组。尝试类似:
Map<Integer, List<MyClass>> myMap = ...;
Set<Map.Entry<Integer, List<MyClass>>> entrySet = myMap.entrySet();
Object[] data = entrySet.toArray(new Object[entrySet.size()]);
// serialize data variable
但请注意,Gson可能无法开箱即用Map.Entry
序列化。