Fastjson可以将 Java 对象转换为 JSON 格式,也可以将 JSON 字符串转换为 Java 对象,所以在企业项目开发中经常会使用到,为了能够更好的使用fastjson,我们需要掌握好fastjson的使用方法,那fastjson有哪些方法?下面来我们就来给大家讲解一下。
fastjson中最常用的就是JSON 类和JSONObject类,下面说一下它们的简单使用:
一、JSON类
JSON的方法基本都是静态方法,可以直接调用。它的所有方法可以分为两大类:
1. 将对象转成json字符串;
2. 将json字符串转成对象。
对象转json字符串
public static String toJSONString(Object object)
任何对象都可以使用这个方法转化成json字符串。
User user = new User("张三", "admin"); String json = JSON.toJSONString(user); // {"password":"admin","userName":"张三"} Map < String, Object > map = new HashMap < String, Object > (); map.put("userName", "张三"); map.put("password", "admin"); String json = JSON.toJSONString(map); // {"password":"admin","userName":"张三"} List < User > userList = new ArrayList < User > (); userList.add(new User("张三", "admin")); userList.add(new User("张三1", "admin1")); json = JSON.toJSONString(userList); //[{"password":"admin","userName":"张三"},{"password":"admin1","userName":"张三1"}]
toJSONString方法会将日期转成时间戳,要想将日期转化成指定格式的字符串,可以使用toJSONStringWithDateFormat
User user = new User("张三","admin",new Date()); json = JSON.toJSONStringWithDateFormat(user, "yyyy-MM-dd HH:mm:ss");// {"birthday":"2017-08-11 11:13:19","password":"admin","userName":"张三"}
JSON里面有DEFFAULT_DATE_FORMAT:public static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";,可以直接使用:
JSON.toJSONStringWithDateFormat(user, JSON.DEFFAULT_DATE_FORMAT);
json对象串转对象
public staticT parseObject(String text, Classclazz) public static JSONObject parseObject(String text) String json = JSON.toJSONString(new User("张三","admin")); // 先弄一个json字符串User user = JSON.parseObject(json, User.class);System.out.println(user); //User{userName='张三', password='admin', birthday=null} // Mapmap = JSON.parseObject(json,Map.class);Mapmap = JSON.parseObject(json);System.out.println(map); // {password=admin, userName=张三}
注意上面的例子,转成Map时可以缺省第二个参数。因为parseObject(String text) 将json字符串转为JSONObject
,而JSONObject又实现了Map
二、JSONObject类
它继承了JSON,并实现了Map
因此可以调用JSON里面的所有方法,还可以像Map那样使用。
JSONObject 类创建了 Map对象,当操作JSONObject的时候,其实是调用了Map的方法。
public JSONObject(int initialCapacity, boolean ordered) { if (ordered) { map = new LinkedHashMap < String, Object > (initialCapacity); // 按照放的先后排序 } else { map = new HashMap < String, Object > (initialCapacity); // 按照字母排序 } }
使用举例:
JSONObject jsonObject = new JSONObject(); jsonObject.put("userName", "张三"); jsonObject.put("password", "admin"); System.out.println(jsonObject.toJSONString()); //{"password":"admin","userName":"张三"} jsonObject = new JSONObject(true); //创建一个能排序的JSONObject jsonObject.put("userName", "张三"); jsonObject.put("password", "admin"); System.out.println(jsonObject.toJSONString()); //{"userName":"张三","password":"admin"} User user = jsonObject.toJavaObject(User.class); System.out.println(user); //User{userName='张三', password='admin', birthday=null}
Fastjson其实就是一个Java语言编写的高性能功能完善的JSON库,而Fastjson常用的方式就是JSON 类和JSONObject类,所以我们需要掌握其方法才能运用在开发中!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: