写在前面
我们在日常开发中经常要对字符串进行转成集合或者是对象,或者是相关对象或者集合转成一个Json字符串等等的需求。
一般我们都会使用阿里巴巴开源的一款组件,那就是fastjson,虽然在去年1.2.7版本之前爆出了一些安全问题,但是这也避免不了很多开发人员对其的热爱。
今天我们就一起来学习一下这几种情况是如何来解决的,跟大家分享一下相关知识。
Fastjson常用方法
将Map转为Json字符串
这个需求我们需要使用到fastjson中的JSONObject类,利用其内部的toJSONString方法,利用这个方法可以将Map转成相应的字符串,可以参考下面的代码,以及运行结果:
代码示例:
public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("1","1"); String json = JSONObject.toJSONString(map); System.out.println(json); }
运行结果:
{"1":"1"}
将List转为json字符串
这个和Map转字符串是一样的,都是利用JSONObject.toJSONString(Object obj)方法来进行转换,我就不在这里过多阐述了。
String json = JSONObject.toJSONString(map);
JSONObject的toJSONString方法
如果你在JsonObject类中搜索不到toJsonString方法,那么不要惊慌,其实是因为这个toJsonString方法不是JsonObject类独有的,而是继承的JSON.java类得来的,如果要去搜索的话,应该去JSON类下面去搜索。
JSON字符串转为Map集合对象
就是要来回转,没办法,有的时候需求就是这样,翻来覆去的转,不过没关系,我们早就有相关的解决方案了,来看看吧。
public static void main(String[] args) { String json = "{"1":"1"}"; Map map = JSON.parseObject(json, Map.class); }
JSON字符串转为List对象
这个就不用说了吧,直接给一行代码,自己体会。
List list = JSON.parseObject(json, List.class);
JSON字符串转为实体类对象
这个也会机会用到的,大家还是看一下。
User user = JSON.parseObject(json, User.class);