2011-07-27 35 views
0

我正在使用VisualForce頁面生成由jQuery插件讀取的JSON文件。我的頁面使用控制器來查詢記錄並輸出它們。代碼如下:Salesforce - 從SOQL結果創建JSON

編輯

解決了!下面是我通過改變

public Opportunity opp {get; private set;} 

public Opportunity[] opp {get; private set;} 

然後使用三角膠製成我OPP對象到一個列表中我找到了解決方案(信用http://blog.lopau.com/visualforce-row-count/

:通過值,可重複循環。

<apex:page standardstylesheets="false" controller="myOppCon" sidebar="false" showHeader="false" contentType="application/x-JavaScript; charset=utf-8"> 
[ 
<apex:variable value="1" var="rowNum"/> 
<apex:variable var="rawData" value="opp" /> 
<apex:repeat value="{!opp}" var="List" id="theRepeat"> 
{ 
"id":"{!List.id}", 
"title":"{!List.name}", 
"start":"<apex:outputText value="{0,date,E',' dd MMM yyyy HH:mm:ss z}"> 
      <apex:param value="{!List.Trip_Start_DateTime__c}" /> 
     </apex:outputText>", 
"end":"<apex:outputText value="{0,date,E',' dd MMM yyyy HH:mm:ss z}"> 
      <apex:param value="{!List.Trip_End_DateTime__c}" /> 
     </apex:outputText>", 
"url":"/{!List.id}" 
}, 
<apex:variable var="rowNum" value="{!VALUE(rowNum) + 1}"/> 
</apex:repeat> 
{}] 
</apex:page> 
+0

對於它的價值,我在許多地方這樣做我傾向於發現在代碼中構建字符串更容易,只需在VF頁面中輸出一行即可。 –

回答

3

在你的控制器,你可以利用下面的序列化類https://github.com/SimonGoodyear/sobject-serialization

,那麼你可以簡單地暴露結果字符串,你可以從你的VF頁面訪問屬性。

+0

如果你的回答包含代碼sniplets和/或直接引用,那麼這樣會很好,所以我們不必點擊一個微博鏈接。 – Soren