【问题标题】:Convert complex Java map to Json using Gson使用 Gson 将复杂的 Java 映射转换为 Json
【发布时间】:2015-05-14 20:29:51
【问题描述】:

我正在尝试使用 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}, etc]}, {"1":[{MyClassItem3}, {MyClassItem4},等等]},等等...]

这可能吗?如果有,怎么做?

【问题讨论】:

    标签: java json gson


    【解决方案1】:

    嗯... 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-10
      • 2017-01-13
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多