Convert nested java objects to Jackson JSON

前端 未结 2 950
南旧
南旧 2020-12-20 10:10

Could someone provide an example or reference that provides a way to convert a nest JAVA object to JSON output using Jackson libraries preferably. I have no problem converti

2条回答
  •  再見小時候
    2020-12-20 10:48

    Create a class Address.

    public class Address {
        private String street;
        private String city; 
        private int zip;
        public String getStreet() {
            return street;
        }
        public void setStreet(String street) {
            this.street = street;
        }
        public String getCity() {
            return city;
        }
        public void setCity(String city) {
            this.city = city;
        }
        public int getZip() {
            return zip;
        }
        public void setZip(int zip) {
            this.zip = zip;
        }
    }
    

    Create a class Id.

     public class Id {
        private String fname;
        private String lname;
        private Address addr;
        public String getFname() {
            return fname;
        }
        public void setFname(String fname) {
            this.fname = fname;
        }
        public String getLname() {
            return lname;
        }
        public void setLname(String lname) {
            this.lname = lname;
        }
        public Address getAddr() {
            return addr;
        }
        public void setAddr(Address addr) {
            this.addr = addr;
        }
    }
    

    Main method:

    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    public class Test {
        public static void main(String[] args) {
            Address addressObj = new Address();
            addressObj.setCity("Chicago");
            addressObj.setStreet("Some Street");
            addressObj.setZip(12345);
    
            Id idObj = new Id();
            idObj.setAddr(addressObj);
            idObj.setFname("Test");
            idObj.setLname("Tester");
    
            ObjectMapper mapper = new ObjectMapper();
    
            //Object to JSON in String
            try {
                String jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(idObj);
                System.out.println(jsonInString);
            } catch (JsonProcessingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }       
        }
    }
    

    Output:

    {
      "fname" : "Test",
      "lname" : "Tester",
      "addr" : {
        "street" : "Some Street",
        "city" : "Chicago",
        "zip" : 12345
      }
    }
    

提交回复
热议问题