JSON這個類是fastjson API的入口,主要的功能都經過這個類提供。html
// 將Java對象序列化爲JSON字符串,支持各類各類Java基本類型和JavaBean public static String toJSONString(Object object, SerializerFeature... features); // 將Java對象序列化爲JSON字符串,返回JSON字符串的utf-8 bytes public static byte[] toJSONBytes(Object object, SerializerFeature... features); // 將Java對象序列化爲JSON字符串,寫入到Writer中 public static void writeJSONString(Writer writer, Object object, SerializerFeature... features); // 將Java對象序列化爲JSON字符串,按UTF-8編碼寫入到OutputStream中 public static final int writeJSONString(OutputStream os, Object object, SerializerFeature... features);
// 將JSON字符串反序列化爲JavaBean public static <T> T parseObject(String jsonStr, Class<T> clazz, Feature... features); // 將JSON字符串反序列化爲JavaBean public static <T> T parseObject(byte[] jsonBytes, // UTF-8格式的JSON字符串 Class<T> clazz, Feature... features); // 將JSON字符串反序列化爲泛型類型的JavaBean public static <T> T parseObject(String text, TypeReference<T> type, Feature... features); // 將JSON字符串反序列爲JSONObject public static JSONObject parseObject(String text);
String jsonStr = "{ " + " \"animals\": { " + " \"dog\": [{ " + " \"name\": \"Rufus\", " + " \"breed\": \"labrador\" " + " }, " + " { " + " \"name\": \"Marty\", " + " \"breed\": \"whippet\" " + " } " + " ], " + " \"cat\": { " + " \"name\": \"Matilda\" " + " } " + " } " + "}";
//parse Tree JSONObject jsonObj = JSON.parseObject(jsonStr); System.out.println("jsonObj:" + jsonObj);//{"animals":{"cat":{"name":"Matilda"},"dog":[{"name":"Rufus","breed":"labrador"},{"name":"Marty","breed":"whippet"}]}} JSONObject animals = jsonObj.getJSONObject("animals"); System.out.println("animals:" + animals);//{"cat":{"name":"Matilda"},"dog":[{"name":"Rufus","breed":"labrador"},{"name":"Marty",","breed":"whippet"}]} JSONArray dogArr = animals.getJSONArray("dog"); System.out.println("dogArr:" + dogArr);//[{"name":"Rufus","breed":"labrador"},{"name":"Marty","breed":"whippet"}] JSONObject dog0 = dogArr.getJSONObject(0); System.out.println("dog0:" + dog0);//{"name":"Rufus","breed":"labrador"} String dog0name = dog0.getString("name"); System.out.println("dog0name:" + dog0name);//Rufus
//parse POJO JsonRootBean model = JSON.parseObject(jsonStr, JsonRootBean.class); System.out.println("model:" + model);//JsonRootBean{animals=Animals{dog=[Dog{name='Rufus', breed='labrador'}, Dog{name='Marty', breed='whippet'}], cat=Cat{name='Matilda'}}}
//parse POJO List對象 Type type = new TypeReference<List<Dog>>() {}.getType(); // List<Dog> list = JSON.parseObject(dogArr.toString(), type); List<Dog> list = JSON.parseArray(dogArr.toString(), Dog.class); System.out.println("list:" + list);//[Dog{name='Rufus', breed='labrador'}, Dog{name='Marty', breed='whippet'}]
//convert POJO to json string String modelStr = JSON.toJSONString(model); System.out.println("modelStr:" + modelStr);//{"animals":{"cat":{"name":"Matilda"},"dog":[{"breed":"labrador","name":"Rufus"},{"breed":"whippet","name":"Marty"}]}}
//convert POJO to json bytes byte[] modelBytes = JSON.toJSONBytes(model); System.out.println("modelBytes:" + modelBytes.length);//117
參考文章:json
https://www.w3cschool.cn/fastjson/fastjson-api.htmlapi