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 ...
随机推荐
- Php基础知识测试题
一:选择题 1. LAMP具体结构不包含下面哪种(A ) A:Windows系统 如果是这个就是WMP B:Apache服务器 C:MySQL数据库 D:PHP语 ...
- [Keras] Develop Neural Network With Keras Step-By-Step
简单地训练一个四层全连接网络. Ref: http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/ 1 ...
- C#WebBrowrse拦截下载对话框
为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙 ...
- MongoDB初识
参考: MongoDB资料汇总专题:
- wampserver服务器无法启动(图标颜色不对)
1.服务器一直无法启动,图标颜色一直显示黄色,并且不可用. 2.解决办法: (1) C:\wamp\bin\apache\apache2.4.9\bin ->httpd.exe 找到该文件 ( ...
- [问答] Firemonkey 控件继承后无法显示(空白)
提问:如下安装后的 TMyPanel 能在设计期时正常显示,但 TMyPanel2 在设计期时是白板,不能正常看到,为什么? TMyPanel = class(TPanel) end; TMyCust ...
- 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
一 总结 eclipse Installed JREs 配置引出的问题:编译以来JDK,不是JRE spring boot内嵌tomcat运行程序,tomcat:run 二 Bug描述:eclipse ...
- 在Thinkphp中使用AJAX实现无刷新分页
在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +------------------------------ ...
- 纯CSS3实现多层云彩变换飞行动画
查看效果:http://hovertree.com/texiao/css3/4/效果2 效果图: 代码如下: <!doctype html> <html lang="zh& ...
- When it comes to intrusion analysis and forensics
以下内容的出现可以追溯到一个发生在互联网的安全事件: Z公司遭受某种攻击,服务器上被植入了Linux DDOS木马,部分系统命令入ls遭替换,攻击者已经获得该服务器root权限: 影响更恶劣的是,连接 ...