Salesforce Apex 使用JSON数据的示例程序
本文介绍了一个在Salesforce Apex中使用JSON数据的示例程序, 该示例程序由以下几部分组成:
Album.cls
, 定了了封装相关字段的数据Model类RestClient.cls
,实现了一个REST服务的客户端, 将REST服务返回的JSON数据转换为Album
的列表AlbumController.cls
,实现了一个Salesforce的Controller, 将Album列表提供给UI页面AlbumList.page
,实现了一个Salesforce的UI页面, 显示Album列表
Album.cls的实现
public class Album {
public Integer id { get; set; }
public String title { get; set; }
}
该Model类包含两个字段, id
和title
。
RestClient.cls的实现
public class RestClient {
public List<Album> getAlbums() {
//build request
String baseURL = 'http://jsonplaceholder.typicode.com/albums/';
HttpRequest req = new HttpRequest();
req.setEndpoint(baseURL);
req.setMethod('GET');
//call REST server
Http http = new Http();
HttpResponse res = http.send(req);
String response = res.getBody();
System.debug('Rest Service Response: ' + response);
//Convert REST response JSON to object
List<Object> objects = (List<Object>) JSON.deserializeUntyped(response);
List<Album> albums = new List<Album>();
for(Object theObject : objects) {
Map<String, Object> albumJSONObject = (Map<String, Object>) theObject;
Album theAlbum = new Album();
theAlbum.id = (Integer) albumJSONObject.get('id');
theAlbum.title = (String) albumJSONObject.get('title');
albums.add(theAlbum);
}
return albums;
}
}
以上代码首先使用http://jsonplaceholder.typicode.com/albums/
提供的REST服务, 该服务放回如下的JSON数据。
[
{
"userId": 1,
"id": 1,
"title": "quidem molestiae enim"
},
{
"userId": 1,
"id": 2,
"title": "sunt qui excepturi placeat culpa"
},
{
"userId": 1,
"id": 3,
"title": "omnis laborum odio"
},
{
"userId": 1,
"id": 4,
"title": "non esse culpa molestiae omnis sed optio"
},
{
"userId": 1,
"id": 5,
"title": "eaque aut omnis a"
},
{
"userId": 1,
"id": 6,
"title": "natus impedit quibusdam illo est"
},
{
"userId": 1,
"id": 7,
"title": "quibusdam autem aliquid et et quia"
},
...
]
然后使用Apex提供的JSON.deserializeUntyped
方法将JSON数据转换为一个Map<String, Object>
, 接着根据JSON数据结构依次构造Album
对象并加入列表之中。
最后返回Album
对象列表。
AlbumController.cls和AlbumList.page的实现
public class AlbumController {
public List<Album> albums {get;set;}
public AlbumController ()
{
RestClient client = new RestClient();
albums = new List<Album>();
albums.addAll(client.getAlbums());
}
}
<apex:page controller="AlbumController" showChat="false" showHeader="false">
<apex:pageBlock title="Albums" >
<apex:pageblocktable value="{!albums}" var="album">
<apex:column headervalue="Id" value="{!album.id}"/>
<apex:column headervalue="Title" value="{!album.title}"/>
</apex:pageblocktable>
</apex:pageBlock>>
</apex:page>
AlbumController
和AlbumList
的实现十分简单, AlbumController
在其构造函数中调用RestClient
以获取Album列表,AlbumList
则使用一个pageblocktable
组件来显示Album的信息。
Salesforce Apex 使用JSON数据的示例程序的更多相关文章
- Jackson序列化和反序列化Json数据完整示例
Jackson序列化和反序列化Json数据 Web技术发展的今天,Json和XML已经成为了web数据的事实标准,然而这种格式化的数据手工解析又非常麻烦,软件工程界永远不缺少工具,每当有需求的时候就会 ...
- Python操作JSON数据代码示例
#!/usr/bin/env python import json import os def json_test(): return_dic = {} json_data = { 'appid':' ...
- 【SqlServer系列】JSON数据
1 概述 本文将结合MSDN简要概述JSON数据. 2 具体内容 JSON 是一种流行的数据格式,用于在现代 Web 和移动应用程序中交换数据. JSON 还可用于在 Microsoft Az ...
- 简单一招实现json数据可视化
开发一个内部功能时碰到的需求,要把json数据在页面上展示出来,平时浏览器会安装jsonView这样的扩展来看json数据,但是程序要用到的话该怎么办呢?今天在网上搜索的时候,发现了这个小技巧,分享一 ...
- 一种从JSON数据创建Java类的高效办法
<一种从JSON数据创建Java类的高效办法> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs JSON格式的数据经常会遇到,比如调用Web服 ...
- Spring mvc,jQuery和JSON数据交互
一.实验环境的搭建 1.Spring mvc jar. 导入spring mvc运行所需jar包.导入如下(有多余) 2.json的支持jar 3.加入jQuery. 选用jquery-3.0.0.m ...
- 微信小程序通过api接口将json数据展现到小程序示例
这篇文章主要介绍了微信小程序通过api接口将json数据展现到小程序示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧实现知乎客户端的一个重要知识前提就是,要知道怎么通过 ...
- 微信小程序wx.request请求服务器json数据并渲染到页面
[原文出自]: https://blog.csdn.net/weixin_39927850/article/details/79766259 微信小程序的数据总不能写死吧,肯定是要结合数据库来做数据更 ...
- Salesforce Apex 开发环境设置和Hello World示例
本文介绍了Salesforce Apex开发环境的设置以及一个简单的Hello World示例的实现过程. Salesforce开发环境 Salesforce通过http://developer.fo ...
随机推荐
- 多线程同步工具——LockSupport
用例1:子线程等待主线程发放许可! public static void main(String[] args) { Thread thread = new Thread(){ public void ...
- bitmap对海量无重复的整数排序--转
原文地址:http://blog.csdn.net/u013074465/article/details/46956295 现在有n个无重复的正整数(n 小于10的7次方),如果内存限制在1.5M以内 ...
- FFmpeg学习2:解码数据结构及函数总结
在上一篇文章中,对FFmpeg的视频解码过程做了一个总结.由于才接触FFmpeg,还是挺陌生的,这里就解码过程再做一个总结. 本文的总结分为以下两个部分: 数据读取,主要关注在解码过程中所用到的FFm ...
- Java正则速成秘籍(一)之招式篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- [Tool] github 入手教程
简单的介绍一下 Github 的基本操作. 主页:https://github.com/ 首先自然是在 GitHub 注册一个帐号了.然后开始正文吧. Git 基本介绍 Git 是属于分布式版本控制系 ...
- 选择目录,选择文件夹的COM组件问题。在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
异常: 在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式.请确保您的 Main 函数带有 STAThreadAttribute 标记. 只有将调试器附加到该进程才会引发此异常. ...
- 配置 EPEL yum 源
当我们在linux上, 使用yum 安装包时,报错如下: Loaded plugins: product-id, refresh-packagekit, security, subscription- ...
- 移动端web开发——视口
本篇主要是记录一下移动端视口的分类说明和其它的一些知识.在开始之前,先看一个典型的例子: <meta name="viewport" content="width= ...
- ArcGIS Engine开发之地图导出
关于地图导出的方法有很多,但是核心技术就那么一点.下面是从项目实战中总结的一部分地图导出的方法:(以全域导出和区域导出为例) 1.由于地图导出用到的函数和方法容易重复,增加了工作量故首先将其进行封装成 ...