zoukankan      html  css  js  c++  java
  • JSON解析工具——Jackson的简单使用

      什么是Jackson

        可以轻松实现Java对象与JSON字符串的转换

      准备工作:导包

        Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar 

      1.实体对象转JSON

        jackson使用getter方法定位属性(而不是字段)
         可以通过添加注解 @JsonIgnore 使某些getter来进行忽略

      将对象或集合转为json字符串

    package cn.jackson;
    
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.List;
    
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.annotate.JsonIgnore;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
    
    public class Customer {
    
        private String name;
        private String id;
        
        public Customer() {
            super();
        }
        public Customer(String name, String id) {
            super();
            this.name = name;
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        @JsonIgnore
        public String getCity(){
            return "北京";
        }
        public String getBirth(){
            return "1988";
        }
        
        public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
            //导包
            //创建ObjectMapper对象
            ObjectMapper mapper = new ObjectMapper();
            //
            Customer cust = new Customer("jackson", "1001");
            String jsonStr = mapper.writeValueAsString(cust);
            System.out.println(jsonStr);
            
            List<Customer> list = (List) Arrays.asList(cust,new Customer("33","离魂计"));
            String jsonStrList = mapper.writeValueAsString(list);
            System.out.println(jsonStrList);
            /**
             * jackson使用getter方法定位属性
             * 可以通过添加注解 @JsonIgnore 使某些getter来进行忽略
             */
        }
    }

      结果:

    {"name":"jackson","id":"1001","birth":"1988"}
    [{"name":"jackson","id":"1001","birth":"1988"},{"name":"33","id":"离魂计","birth":"1988"}]

      在SpringMVC中,如果想自定义转换成JSON时的key不是属性的名称,例如 String name 转换时变成 "name":"xxx",如果想变成"n":"xxx",可以使用注解!

    @JsonPropertity("n")
    private String name

       于是ajax_day02可以转为使用Jackson简化:

        ObjectMapper mapper=new ObjectMapper();
            String result=mapper.writeValueAsString(sc);

      2.JSON字符串转对象

    ObjectMapper mapper = new ObjectMapper();
            String json = "{"name":"jackson","id":"1001"}";
            Customer c = mapper.readValue(json, Customer.class);
            System.out.println(c.getId());

      //注意"的转义操作

  • 相关阅读:
    hdu5360 Hiking(水题)
    hdu5348 MZL's endless loop(欧拉回路)
    hdu5351 MZL's Border(规律题,java)
    hdu5347 MZL's chemistry(打表)
    hdu5344 MZL's xor(水题)
    hdu5338 ZZX and Permutations(贪心、线段树)
    hdu 5325 Crazy Bobo (树形dp)
    hdu5323 Solve this interesting problem(爆搜)
    hdu5322 Hope(dp)
    Lightoj1009 Back to Underworld(带权并查集)
  • 原文地址:https://www.cnblogs.com/jiangbei/p/6881787.html
Copyright © 2011-2022 走看看