Salesforce-从SOQL结果创建JSON

Salesforce-从SOQL结果创建JSON,json,salesforce,apex-code,Json,Salesforce,Apex Code,我正在使用VisualForce页面生成一个JSON文件,该文件由jQuery插件读取。我的页面使用一个控制器来查询记录并输出它们。代码如下: 编辑 解决了!这是我找到的解决办法 我将opp对象更改为一个列表 public Opportunity opp {get; private set;} 到 然后使用“顶点:重复”循环遍历这些值 <apex:page standardstylesheets="false" controller="myOppCon" sidebar="false"

我正在使用VisualForce页面生成一个JSON文件,该文件由jQuery插件读取。我的页面使用一个控制器来查询记录并输出它们。代码如下:

编辑

解决了!这是我找到的解决办法

我将opp对象更改为一个列表

 public Opportunity opp {get; private set;}

然后使用“顶点:重复”循环遍历这些值

<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>

在控制器中,可以使用以下序列化类


然后,您只需将生成的字符串作为一个属性公开,您可以从VF页面访问该属性。

自Winter12发布以来,salesforce apex的本机serialie/deserialize JSON方法记录在:

主要功能有

JSON.serialize 
JSON.deserialize

如果您的答案包含代码片段和/或直接引用,那么我们就不必点击一个到博客的小链接了,那就太好了。值得一提的是,我在很多地方都做过这件事,我倾向于在代码中构建字符串,并在VF页面中用一行代码输出它更容易。
JSON.serialize 
JSON.deserialize