Salesforce - создание JSON из результатов SOQL - PullRequest
0 голосов
/ 27 июля 2011

Я использую страницу 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>

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

Начиная с выпуска Winter12, у salesforce apex есть собственные методы JSON для сериализации / десериализации, документированные в: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_json.htm

Основные функции

JSON.serialize 
JSON.deserialize
3 голосов
/ 28 июля 2011

В вашем контроллере вы можете использовать следующий класс сериализации https://github.com/SimonGoodyear/sobject-serialization

Затем вы можете просто представить результирующую строку как свойство, к которому вы можете получить доступ со своей страницы VF.

...