Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本,boolean参数true能设置格式,false则不能 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
代码演示:
// 实体类转换成json
public static void voToJson() {
UserInfo user = new UserInfo();
user.setName("张三");
user.setCar(null);
user.setLike(new String[] { "吃", "喝" });
// 注意:UserInfo中所有的属性都会显示出来,没有set的以默认值的方式显示(值为null的除外)
String jsonstr = JSON.toJSONString(user);
System.out.println("实体类转json格式字符串 :" + jsonstr);
}
// list集合的转换
public static void listToJson() {
List<UserInfo> list = new ArrayList<UserInfo>();
UserInfo userinfo1 = new UserInfo();
UserInfo userinfo2 = new UserInfo();
userinfo1.setAge(12);
userinfo2.setAge(20);
list.add(userinfo1);
list.add(userinfo2);
String json = JSON.toJSONString(list, true);
System.out.println("List集合转json格式字符串 :" + json);
}
// 字符数组JSON转化为数组
public static void StringArrayToJSON() {
String s = "[{\"name\":\"aa\",\"age\":10},{\"name\":\"bb\",\"age\":20}]";
List<UserInfo> list = JSON.parseArray(s, UserInfo.class);
for (UserInfo ui:list) {
System.out.println(ui.getName());
}
}
// 复杂数据类型
public static void Complexdata() {
//map集合1
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "zhangsan");
map.put("age", 24);
map.put("sex", "男");
// map集合2
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("name", "xiaohong");
temp.put("age", "23");
//map集合2装map集合1中
map.put("girlInfo", temp);
// list集合
List<String> list = new ArrayList<String>();
list.add("爬山");
list.add("骑车");
list.add("旅游");
//map集合1装了List集合
map.put("hobby", list);
String jsonString = JSON.toJSONString(map);
System.out.println("复杂数据类型:" + jsonString);
}
// JSON转成实体类
public static void Deserialization() {
String json = "{\"name\":\"cc\",\"age\":24}";
UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"
+ userInfo.getAge());
}
// 格式化日期
public static void DateFormate() {
Date d = new Date();
System.out.println("时间:" + d);
System.out.println("输出毫秒值:" + JSON.toJSONString(d));
System.out.println("默认格式为:"
+ JSON.toJSONString(d,
SerializerFeature.WriteDateUseDateFormat));
System.out.println("自定义日期:"
+ JSON.toJSONStringWithDateFormat(d, "yyyy-MM-dd",
SerializerFeature.WriteDateUseDateFormat));
}
// Json转为实体
public static void Json2Eetity() {
String json = "{\"name\":\"cc\",\"age\":24}";
UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
System.out.println("输出对象的地址:" + userInfo.toString());
System.out.println("输出对象的名字:" + userInfo.getName());
}