繁体   English   中英

使用Gson将复杂的Java映射转换为Json

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM