如何使用FlexJSON序列化Map <String,List >

我有一个对象,我想序列化为JSON。 此对象是包含特定对象列表的地图。 这与它类似:

Map<String, List> map = new Map<String, List>(); 

我正在使用FlexJSON。 我只能使用flexjson.JSONSerializer 。 有我的尝试:

 JSONSerializer jsonSerializer = new JSONSerializer(); // jsonSerializer.include("map"); // jsonSerializer.include("map.myList.object"); jsonSerializer.transform(new MapTransformer(), "map"); jsonSerializer.exclude("*.class"); 

正如您所看到的,我现在正在尝试使用Transformer类,但我还没有成功。 正如我想的那样,如果我的List具有自己的名称,例如myList 。 但它没有自己的名字,因为它是我的地图的values

如何使用FlexJSON将此类对象序列化为JSON?

Quoi是正确的,很可能是您想要使用的答案。 但是,只需这样您就可以了解更多有关它如何工作的信息,您可以这样做:

 new JSONSerializer().include("values.values").serialize( myMap ); 

地图和列表是容器,并且包含其中包含的元素的特殊表达式。 如果要谈论容器值的路径,请在路径中使用“值”表达式。 Map的两个特殊表达式“keys”和“values”。 其他collections品有“价值”。

另一种选择是使用通配符,如下所示:

  new JSONSerializer().include("values.*").serialize( myMap ); 

你可以看到Quoi的答案中使用的通配符,也可以排除class属性。

尝试

 String jsonString = new JSONSerializer().exclude("*.class").deepSerialize(map); 

deepSerialize方法执行目标实例的深度序列化。 默认情况下,它将包括所有集合,映射和数组,因此除非要包含注释要排除的内容,否则将忽略包含。