其他分享
首页 > 其他分享> > 如何使用FlexJSON序列化Map>

如何使用FlexJSON序列化Map>

作者:互联网

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

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

我正在使用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< Object>,则注释行将起作用.有自己的名字,例如myList.但它没有自己的名字,因为它是我的地图的价值.

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

解决方法:

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

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

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

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

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

您可以看到Quoi的答案中使用的通配符以排除类属性.

标签:java,json,jsonserializer,flexjson
来源: https://codeday.me/bug/20190729/1571137.html