Jackson基礎

1、所需jar包:java

  jackson-core-x.x.x-rc4.jar、jackson-databind-x.x.x-rc4.jar、jackson-annotations-x.x.x-rc4.jar(本例使用jackson-core-2.6.0-rc4.jar、jackson-databind-2.6.0-rc4.jar、jackson-annotations-2.6.0-rc4.jar)。node

 

2、解析轉化:json

  一、json字符串  < ------ >  jsapp

        String str="{\"name\" : \"peter\",\"age\" : 25,\"address\" : \"廣州\",\"weight\" : \"55.5\",\"handsome\" : true}";
        
        //json字符串  ------>  json
        ObjectMapper mapper=new ObjectMapper();
        JsonNode jsonNode=mapper.readTree(str);
        
        //json  ------>json字符串
        String jsonStr=jsonNode.toString();

 

  二、java實體類  < ------ >  jsonspa

 

public class User {
    private String name;
    private int age;
    private String address;
    private double weight;
    private boolean handsome;
    //此處省略構造方法和get、set方法
        User user=new User("peter", 20, "廣州", 55.5, true);
        
        ObjectMapper mapper=new ObjectMapper();
        //java實體類 ------>  json字符串
        String jsonStr=mapper.writeValueAsString(user);
        //json字符串------>json
        JsonNode json=mapper.readTree(jsonStr);
        
        //json  ------>  java實體類
        User user2=mapper.readValue(jsonStr, User.class);

 

  三、List  < ------ >  jsoncode

        List<String> list=new ArrayList<String>();
        list.add("QQQQQQ");
        list.add("WWWWWW");
        list.add("EEEEEE");
        list.add("RRRRRR");
        
        ObjectMapper mapper=new ObjectMapper();
        //List  ------>  json字符串
        String jsonStr=mapper.writeValueAsString(list);
        //json字符串  ------> json
        JsonNode jsonNode=mapper.readTree(jsonStr);
//json字符串 ------> List List<String> list2=mapper.readValue(jsonStr, List.class);

 

  四、Map  < ------ >  jsonblog

        Map<String, String> map=new HashMap<String, String>();
        map.put("name", "peter");
        map.put("sex", "Man");
        map.put("age", "20");
        
        ObjectMapper mapper=new ObjectMapper();
        //Map  ------>  json字符串
        String jsonStr=mapper.writeValueAsString(map);
        //json字符串  ------>  json
        JsonNode json=mapper.readTree(jsonStr);
        //json  ------>  Map
        Map<String, String> map2=mapper.readValue(json.toString(), Map.class);

 

  五、Set  < ------ >  jsonrem

        Set<String> set=new HashSet<String>();
        set.add("QQQQQQ");
        set.add("wwwwww");
        set.add("eeeeee");
        
        ObjectMapper mapper=new ObjectMapper();
        //Set  ------>  json字符串
        String jsonStr=mapper.writeValueAsString(set);
     //json字符串 ------> json
     JsonNode jsonNode=mapper.readTree(jsonStr);
//json字符串 ------> Set Set<String> set2=mapper.readValue(jsonStr, Set.class);

 

3、CRUD:字符串

  一、查詢數據:get

        //peter
        String name=jsonNode.get("name").asText();
        //"peter"
        String name1=jsonNode.get("name").toString();

        //提取handsome(true)
        JsonNode handsome=jsonNode.path("handsome");
int age=jsonNode.get("age").asInt(); double weight=jsonNode.get("weight").asDouble(); boolean handsome=jsonNode.get("handsome").asBoolean()
        for (int i = 0; i < jsonNode.size(); i++) {
            System.out.println(jsonNode.get(i));
        }

 

  二、增長數據:

        ObjectMapper mapper=new ObjectMapper();
        ObjectNode node=mapper.createObjectNode();
        //{"name":"DJ","age":18}
        node.put("name", "DJ");
        node.put("age", 18);
        
        ArrayNode arrayNode=mapper.createArrayNode();
        //["name","age"]
        arrayNode.add("name");
        arrayNode.add("age");

 

  三、刪除數據:

        ObjectMapper mapper=new ObjectMapper();
        ObjectNode node=mapper.createObjectNode();
        
        node.put("name", "DJ");
        node.put("age", 18);
        
        node.remove("name");
        ArrayNode arrayNode=mapper.createArrayNode();
        //["name","age"]
        arrayNode.add("name");
        arrayNode.add("age");
        int index=0;
        arrayNode.remove(index);

 

  四、修改數據:

        ObjectMapper mapper=new ObjectMapper();
        ObjectNode node=mapper.createObjectNode();
        
        node.put("name", "DJ");
        node.put("age", 18);
        
        //重置數據
        node.put("name", "MDJ");
        ArrayNode arrayNode=mapper.createArrayNode();
        //["name","age"]
        arrayNode.add("name");
        arrayNode.add("age");
        
        for (int i = 0; i < arrayNode.size(); i++) {
            if("name".equals(arrayNode.get(i).asText())){
                arrayNode.remove(i);
                arrayNode.add("userName");
            }
        }
相關文章
相關標籤/搜索