一、簡單數據的序列化
pubic class UserInfo implements Serializable{ private String name; private int age; public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setAge(int age){ this.age=age; } public int getAge(){ return age; } } public class TestOne{ public static void main(String[] args){ UserInfo info=new UserInfo(); info.setName("zhangsan"); info.setAge(24); //將對象轉換為JSON字符串 String strJson=JSON.toJSONString(info); System.out.println("JSON="+strJson); } }
說明:
- 關鍵部分就是上述部分的JSON.toJSONString();
- JSON序列化,默認序列化出的JSON字符串中鍵值對是使用雙引號,如果需要單引號的JSON字符串,[eg:String jsonString = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);] fastjson序列化時可以選擇的SerializerFeature有十幾個屬性,你可以按照自己的需要去選擇使用。
二、反序列化
public void test3(){ String json="{\"name\":\"chenggang\",\"age\":24}"; //反序列化 UserInfo userInfo=JSON.parseObject(json,UserInfo.class); System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge()); } /**泛型的反序列化*/ public static void test4(){ String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}"; Map<String, UserInfoBean> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfoBean>>(){}); System.out.println(map.get("user")); }
三、日期格式化
public void test5(){ Date date=new Date(); //輸出毫秒值 System.out.println(JSON.toJSONString(date)); //默認格式為yyyy-MM-dd HH:mm:ss System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat)); //根據自定義格式輸出日期 System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat)); }
說明:
阿里巴巴提供了很多SerializerFeature.XXX 這些都很符合中國人的習慣。比起Jackson各有優劣!
四、基本常用API
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文本 // public static final Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray(和上面方法的區別是返回值是不一樣的)
JackSon下載:http://repo1.maven.org/maven2/com/alibaba/fastjson/ 與 https://yunpan.cn/cu2iEKCZjXfak 訪問密碼 8291