[英]Convert complex Java map to Json using Gson
我正在尝试使用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接近但不符合我期望/想要的格式。 这是产生的:
{“ 0”:[{MyClassItem1},{MyClassItem2}等],“ 1”:[{MyClassItem3},{MyClassItem4}等]等...}
我希望/更喜欢它产生:
[{“ 0”:[{MyClassItem1},{MyClassItem2}等]},{“ 1”:[{MyClassItem3},{MyClassItem4}等]}等...]
这可能吗? 如果是这样,怎么办?
好吧... 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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.