2014-01-09 23 views
1

我想創建一個http callout來導入json並在Visualforce頁面中顯示信息。我遇到的問題是json是嵌套的,所以我需要遍歷子節點。Apex - 在反序列化json之後顯示列表

我有使用json2apex申請導出的下面的類:

public class CHForm { 

public class FilingHistoryItem { 
    public String DocumentDate; 
    public String FormType; 
    public String DocumentCategory; 
    public String Document; 
    public String DocumentDescription; 
    } 

public FilingHistory FilingHistory; 

public class FilingHistory{ 
    public List<FilingHistoryItem> FilingHistoryItem; 
    } 


public static CHForm parse(String json) { 
    return (CHForm) System.JSON.deserialize(json, CHForm.class); 
    } 


} 

以我控制器I類可以創建一個CHForm對象(reponseForm),並使用deserialise的JSON到reponseForm對象的以下:

HttpResponse res = h.send(req); 
String chFormJson = res.getBody(); 
responseForm = CHForm.parse(chFormJson); 

但是,我該如何顯示Visualforce頁面中的所有FilingHistoryItem列表?我是否需要在控制器中創建列表對象,或者是否有直接從Visualforce頁面引用列表的方法?

回答

0

我有點被你迷惑頂點,它不應該是:

public List<FilingHistoryItem> FilingHistory; 

public class FilingHistoryItem { 
    public String DocumentDate; 
    public String FormType; 
    public String DocumentCategory; 
    public String Document; 
    public String DocumentDescription; 
    } 

然後,你可以做:

​​

你設置它的方式現在登記,我覺得可能這樣工作的:

<apex:repeat value="{!responseform.FilingHistory.FilingHistoryItem}" var="item" id="theRepeat"> 
     <apex:outputText value="{! item.DocumentDate}" /> //etc 
    </apex:repeat 

但它是一個有點怪你的名字的列表屬性爲「...項目」,而不是「..Items」,和嵌套,因此德eply,但也許這是一個json依賴。