This article only records some common operation methods of fastjson and jackson, but not for comparison. There are a lot of comparison articles written on the Internet.
1. Object to Json string
// fastjson String objStr = JSON.toJSONString(obj); // The default attribute to be removed is Null Valued // jackson ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // Not removed by default Null You have to match it String objStr = mapper.writeValueAsString(obj);
2. Json string to Json object
// fastjson JSONObject objJson = JSON.parseObject(objStr); // jackson ObjectMapper mapper = new ObjectMapper(); JsonNode objJson = mapper.readTree(objStr);
3. Json string to Java object
// fastjson Clazz obj = JSON.parseObject(jsonStr, Clazz.class); // jackson ObjectMapper mapper = new ObjectMapper(); Clazz obj = mapper.readValue(jsonStr, Clazz.class);
4. Get the key of the Json object
// fastjson Set<String> keySet = jsonObj.keySet(); String key = keySet.iterator().next(); // Get the first one key // jackson Iterator<String> keys = jsonObj.fieldNames(); String key = fieldNames.next(); // Get the first one key
5. Get the value of Json object
// fastjson jsonObj.get("key") // jackson jsonObj.path("key")
6. Create a Json object and set key\value
// fastjson JSONObject jsonObj = new JSONObject(); jsonObj.put("key", oldJsonObj); // jackson ObjectMapper mapper = new ObjectMapper(); ObjectNode jsonObj = mapper.createObjectNode(); jsonObj.set("key", oldJsonObj);
At this point, fastjson is directly handled by a JSONObject, while jsonode in jackson does not directly set the key/value method. Here, ObjectNode is used. jackson provides a tree model to generate and parse json. If you want to access and modify some properties, the tree model is a good choice. ObjectNode inherits from JsonNode. Here is an example:
ObjectMapper mapper = new ObjectMapper(); // Establish ObjectNode ObjectNode studentNode = mapper.createObjectNode(); // Add attribute studentNode.put("name","xiaoming"); studentNode.put("age",18); ObjectNode addressNode = mapper.createObjectNode(); addressNode.put("street","guangzhou"); // Set child nodes studentNode.set("addr",addressNode); // path Search node JsonNode searchNode = studentNode.path("street"); // Delete attribute ((ObjectNode) studentNode).remove("addr"); // read JsonNode rootNode = mapper.readTree(studentNode.toString()); // JsonNode turn java object Student student = mapper.treeToValue(studentNode, Student.class); // java Object turn JsonNode JsonNode node = mapper.valueToTree(student);