2010-03-13 71 views
7

我想知道是否有一個網頁/軟件,可以將Json提要對象「轉化」爲具有屬性的Java對象。JSON提要到Java對象

例如:

{ 
      'firstName': 'John', 
      'lastName': 'Smith', 
      'address': { 
       'streetAddress': '21 2nd Street', 
       'city': 'New York' 
      } 
     } 

將成爲:

class Person { 
    private String firstName; 
    private String lastName; 
    private Address address; 

    public String getFirstName() { return firstName; } 
    public String getLastName() { return lastName; } 
    public Address getAddress() { return address; } 

    public void setFirstName(String firstName) { this.firstName = firstName; } 
    public void setLastName(String lastName) { this.lastName = lastName; } 
    public void setAddress(Address address) { this.address = address; } 

    public String toString() { 
     return String.format("firstName: %s, lastName: %s, address: [%s]", firstName, lastName, address); 
    } 
} 

class Address { 
    private String streetAddress; 
    private String city; 

    public String getStreetAddress() { return streetAddress; } 
    public String getCity() { return city; } 

    public void setStreetAddress(String streetAddress) { this.streetAddress = streetAddress; } 
    public void setCity(String city) { this.city = city; } 

    public String toString() { 
     return String.format("streetAddress: %s, city: %s", streetAddress, city); 
    } 
} 

我不是問這個,因爲我很懶,但我想解析JSON有相當多的屬性。

回答

2

我已經成功使用json-lib進行json序列化和反序列化。你的榜樣應該是這樣的:

​​

,並打印

firstName: John, lastName: Smith, address: [streetAddress: 21 2nd Street, city: New York] 

如果您需要定製它有很多的擴展掛鉤。在我的應用程序中,我添加了將語言環境序列化爲字符串「sv_SE」而不是對象的支持。並將該字符串反序列化爲一個Locale對象。