2016-05-29 14 views
1

Spring Webアプリケーションで文字列とオブジェクトのリストを含むJSONを逆シリアル化しようとしています。Gsonを使用してオブジェクトのリストを含むJSONを逆シリアル化します。

JSON

[ 
{ 
    "jsonrpc":"2.0", 
    "result":[ 
    { 
    "event":{ 
     "id":"27809810", 
     "name":"Spezia v Trapani", 
     "countryCode":"IT", 
     "timezone":"Europe/London", 
     "openDate":"2016-05-28T16:30:00.000Z" 
    }, 
    "marketCount":13 
    }, 
    { 
    "event":{ 
     "id":"27811083", 
     "name":"Torino U19 v Atalanta U19", 
     "countryCode":"IT", 
     "timezone":"Europe/London", 
     "openDate":"2016-05-29T16:15:00.000Z" 
    }, 
    "marketCount":18 
    }, 
... 
] 

私のクラスです:

ListEventsResponseクラス

public class ListEventsResponse { 
    private String jsonrpc; 
    private List<ListEventsResult> result; 

    public ListEventsResponse() { } 

    public String getJsonrpc() { 
     return jsonrpc; 
    } 

    public void setJsonrpc(String jsonrpc) { 
     this.jsonrpc = jsonrpc; 
    } 

    public List<ListEventsResult> getResult() { 
     return result; 
    } 

    public void setResult(List<ListEventsResult> result) { 
     this.result = result; 
    } 
} 

ListEventsResultクラス

public class ListEventsResult { 
    private Event event; 
    private int marketCount; 

    public ListEventsResult() { } 

    public Event getEvent() { 
     return event; 
    } 

    public void setEvent(Event event) { 
     this.event = event; 
    } 

    public int getMarketCount() { 
     return marketCount; 
    } 

    public void setMarketCount(int marketCount) { 
     this.marketCount = marketCount; 
    } 
} 

私もです。イベントクラスは、5文字列(ID、名前など)で構成されています。

コントローラ

[...] 
ListEventsResponse listEvents = new Gson().fromJson(response.toString(), ListEventsResponse.class);   
List<ListEventsResult> eventsList = listEvents.getResult(); 
    return new ModelAndView("page", "eventsList", eventsList); 

私の.jspページ

[...] 
<c:forEach items="${eventsList}" var="listEventsResult"> 
    Match: <c:out value="${listEventsResult.name}"/> 
</c:forEach> 
[...] 

私のコードが実行され、すべてのエラーを与えるものではありませんが、一致が事実listEventsで、自分のページに表示されていませんオブジェクトを含んでいません。

私はオブジェクトのリストを適切に非直列化する方法を理解できませんので、私の質問は、オブジェクトのリストを含むjsonの逆シリアル化の背後にある論理ですか?

私は自分の問題をより良く説明するためにコードを投稿します。

答えて

0

あなたがレスポンスとしてJSON配列を持っているとして、あなたは

Gson gson = new Gson(); 
    Type type = new TypeToken<List<ListEventsResponse>>(){}.getType(); 
    List<ListEventsResponse> events = (List<ListEventsResponse>) gson.fromJson(response.toString(), type); 

happyCoding以下のようにデシリアライズする必要があります。

関連する問題