Я использую страницу VisualForce для создания файла JSON, который читается плагином jQuery. Моя страница использует контроллер для запроса записей и вывода их. Код ниже:
EDIT
Решено! Вот решение, которое я нашел (кредит http://blog.lopau.com/visualforce-row-count/)
Я превратил свой объект opp в список, изменив
public Opportunity opp {get; private set;}
до
public Opportunity[] opp {get; private set;}
затем использовал apex: repeat для циклического перебора значений.
<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>