2017-05-16 14 views
0

私はPOJOクラスのJavaオブジェクトに設定する必要がある次のJSON文字列を持っています。 どのような方法を実行する必要がありますか?Javaを使用してJson文字列をJavaオブジェクトに設定する方法

{"status":"FOUND","messages":null,"sharedLists":  [{"listId":"391647d","listName":"/???","numberOfItems":0,"colla borative":false,"displaySettings":true}] } 

私はGsonを使用しようとしましたが、それは私のためには機能しませんでした。

Gson gson = new Gson(); 
SharedLists target = gson.fromJson(sb.toString(), SharedLists.class); 

以下は私のSharedListsがあなたのJSON文字列を次に示し

public class SharedLists { 

@SerializedName("listId") 
private String listId; 

@SerializedName("listName") 
private String listName; 

@SerializedName("numberOfItems") 
private int numberOfItems; 

@SerializedName("collaborative") 
private boolean collaborative; 

@SerializedName("displaySettings") 
private boolean displaySettings; 

public int getNumberOfItems() { 
    return numberOfItems; 
} 
public void setNumberOfItems(int numberOfItems) { 
    this.numberOfItems = numberOfItems; 
} 
public boolean isCollaborative() { 
    return collaborative; 
} 
public void setCollaborative(boolean collaborative) { 
    this.collaborative = collaborative; 
} 
public boolean isDisplaySettings() { 
    return displaySettings; 
} 
public void setDisplaySettings(boolean displaySettings) { 
    this.displaySettings = displaySettings; 
} 

public String getListId() { 
    return listId; 
} 
public void setListId(String listId) { 
    this.listId = listId; 
} 

} 
+0

JSONレスポンス全体をマップするクラスが必要だと思います。あなたはhttp://www.jsonschema2pojo.org/からそれを生成することができます –

+0

あなたはあなたの上記の声明を明確にしていただけますか? – Parag

+0

キー '' colla borative ''にjson文字列にスペースがないことを願っています。 –

答えて

1

をPOJOです。

{ 
    "status": "FOUND", 
    "messages": null, 
    "sharedLists": [ 
    { 
     "listId": "391647d", 
     "listName": "/???", 
     "numberOfItems": 0, 
     "colla borative": false, 
     "displaySettings": true 
    } 
    ] 
} 

明らかにsharedListsは、外側のJSONオブジェクト内のJSON配列です。

次のようにだから私は

ResponseObject(入力として、あなたのJSONを提供することにより、http://www.jsonschema2pojo.org/から作成された)2つのクラスを持っている - 各オブジェクトを表します -

public class ResponseObject { 

     @SerializedName("status") 
     @Expose 
     private String status; 
     @SerializedName("messages") 
     @Expose 
     private Object messages; 
     @SerializedName("sharedLists") 
     @Expose 
     private List<SharedList> sharedLists = null; 

     public String getStatus() { 
      return status; 
     } 

     public void setStatus(String status) { 
      this.status = status; 
     } 

     public Object getMessages() { 
      return messages; 
     } 

     public void setMessages(Object messages) { 
      this.messages = messages; 
     } 

     public List<SharedList> getSharedLists() { 
      return sharedLists; 
     } 

     public void setSharedLists(List<SharedList> sharedLists) { 
      this.sharedLists = sharedLists; 
     } 

    } 

SharedList

外側のオブジェクトを表しますアレイ内で

public class SharedList { 

    @SerializedName("listId") 
    @Expose 
    private String listId; 
    @SerializedName("listName") 
    @Expose 
    private String listName; 
    @SerializedName("numberOfItems") 
    @Expose 
    private Integer numberOfItems; 
    @SerializedName("colla borative") 
    @Expose 
    private Boolean collaBorative; 
    @SerializedName("displaySettings") 
    @Expose 
    private Boolean displaySettings; 

    public String getListId() { 
     return listId; 
    } 

    public void setListId(String listId) { 
     this.listId = listId; 
    } 

    public String getListName() { 
     return listName; 
    } 

    public void setListName(String listName) { 
     this.listName = listName; 
    } 

    public Integer getNumberOfItems() { 
     return numberOfItems; 
    } 

    public void setNumberOfItems(Integer numberOfItems) { 
     this.numberOfItems = numberOfItems; 
    } 

    public Boolean getCollaBorative() { 
     return collaBorative; 
    } 

    public void setCollaBorative(Boolean collaBorative) { 
     this.collaBorative = collaBorative; 
    } 

    public Boolean getDisplaySettings() { 
     return displaySettings; 
    } 

    public void setDisplaySettings(Boolean displaySettings) { 
     this.displaySettings = displaySettings; 
    } 

} 

Gson gson = new Gson(); 
ResponseObject target = gson.fromJson(inputString, ResponseObject.class); 

・ホープ、このことができますが、以下のように今、あなたはGSONと全体のJSON文字列を解析することができます。

関連する問題