Salesforce JSON应用(二) 反序列化deserializeUntyped方法,序列化serialize方法
2023-06-13 09:11:04 时间
1.反序列化
现有映射式Json格式数据存储在项目【SYS_ApprovalJson__c】中,根据检索结果进行反序列化处理后查看内容。
[{"Datetime":"2022-05-28T08:34:15.000Z","HQ__c":["01"],"Office__c":["01"],"Store__c":["01B1"],"Rank__c":["S"]}, {"Datetime":"2022-08-31T12:17:52.000Z","HQ__c":["01","0A"],"Office__c":["01","0A"],"Store__c":["01B1","0AE0"],"Rank__c":["A","B"]}]
在Apex中使用deserializeUntyped方法反序列化处理,查看具体内容。
public with sharing class JsonParseringClass {
/**Opportunity Prefix*/
private static final String SOBJECT_TYPE_PREFIX_OPPORTUNITY
= Schema.SObjectType.Opportunity.getKeyPrefix();
public JsonParseringClass() {
Project__c projectItem = [SELECT Id,SYS_ApprovalJson__c FROM Project__c WHERE Id = 'a025g00000AJaWUAA1'];
if (projectItem.SYS_ApprovalJson__c != null && projectItem.SYS_ApprovalJson__c.startsWith('[') && projectItem.SYS_ApprovalJson__c.endsWith(']')) {
List<Object> useAppListJson = (List<Object>)JSON.deserializeUntyped(projectItem.SYS_ApprovalJson__c);
system.debug('>>>>>>>>>useAppListJson>>>>>'+useAppListJson);
if (useAppListJson != null) {
for (Object listItem : useAppListJson) {
if(listItem instanceof Map<String,Object>) {
Map<String,Object> mapItem = (Map<String,Object>)listItem;
system.debug('>>>>>>>>>mapItem>>>>>'+mapItem);
}
}
}
}
}
}
Log结果
USER_DEBUG [9]|DEBUG|>>>>>>>>>useAppListJson>>>>>
({Datetime=2022-05-28T08:34:15.000Z, HQ__c=(01),
Office__c=(01), Rank__c=(S), Store__c=(01B1)},
{Datetime=2022-08-31T12:17:52.000Z, HQ__c=(01, 0A),
Office__c=(01, 0A), Rank__c=(A, B), Store__c=(01B1, 0AE0)})
USER_DEBUG [15]|DEBUG|>>>>>>>>>mapItem>>>>>
{Datetime=2022-05-28T08:34:15.000Z, HQ__c=(01), Office__c=(01), Rank__c=(S), Store__c=(01B1)}
USER_DEBUG [15]|DEBUG|>>>>>>>>>mapItem>>>>>
{Datetime=2022-08-31T12:17:52.000Z, HQ__c=(01, 0A), Office__c=(01, 0A), Rank__c=(A, B), Store__c=(01B1, 0AE0)}
public with sharing class JsonParseringClass {
/**Opportunity Prefix*/
private static final String SOBJECT_TYPE_PREFIX_OPPORTUNITY
= Schema.SObjectType.Opportunity.getKeyPrefix();
public JsonParseringClass() {
Set<String> hQSets = new Set<String>();
Set<String> officeSets = new Set<String>();
Set<String> storeSets = new Set<String>();
Set<String> rankSets = new Set<String>();
Project__c projectItem = [SELECT Id,HQ__c, Office__c, Store__c, Rank__c,SYS_ApprovalJson__c FROM Project__c WHERE Id = 'a025g00000AJaWUAA1'];
if (projectItem.SYS_ApprovalJson__c != null && projectItem.SYS_ApprovalJson__c.startsWith('[') && projectItem.SYS_ApprovalJson__c.endsWith(']')) {
List<Object> useAppListJson = (List<Object>)JSON.deserializeUntyped(projectItem.SYS_ApprovalJson__c);
if (useAppListJson != null) {
for (Object listItem : useAppListJson) {
if(listItem instanceof Map<String,Object>) {
Map<String,Object> mapItem = (Map<String,Object>)listItem;
System.debug('>>>mapItem>>>' + mapItem);
for (Object objItem : (List<Object>)mapItem?.get('HQ__c')) {
hQSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Office__c')) {
officeSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Store__c')) {
storeSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Rank__c')) {
rankSets.add((String)objItem);
}
}
}
}
}
System.debug('>>>hQSets>>>' + hQSets);
System.debug('>>>officeSets>>>' + officeSets);
System.debug('>>>storeSets>>>' + storeSets);
System.debug('>>>rankSets>>>' + rankSets);
}
}
Log结果
2.序列化
把当前查询结果,序列化转换成Json形式更新到项目【SYS_ApprovalJson__c】中。
public with sharing class JsonParseringClass {
/**Opportunity Prefix*/
private static final String SOBJECT_TYPE_PREFIX_OPPORTUNITY
= Schema.SObjectType.Opportunity.getKeyPrefix();
public JsonParseringClass() {
Set<String> hQSets = new Set<String>();
Set<String> officeSets = new Set<String>();
Set<String> storeSets = new Set<String>();
Set<String> rankSets = new Set<String>();
List<Object> useAppListJson = new List<Object>();
Project__c projectItem = [SELECT Id,HQ__c, Office__c, Store__c, Rank__c,SYS_ApprovalJson__c FROM Project__c WHERE Id = 'a025g00000AJaWUAA1'];
if (projectItem.SYS_ApprovalJson__c != null && projectItem.SYS_ApprovalJson__c.startsWith('[') && projectItem.SYS_ApprovalJson__c.endsWith(']')) {
useAppListJson = (List<Object>)JSON.deserializeUntyped(projectItem.SYS_ApprovalJson__c);
if (useAppListJson != null) {
for (Object listItem : useAppListJson) {
if(listItem instanceof Map<String,Object>) {
Map<String,Object> mapItem = (Map<String,Object>)listItem;
System.debug('>>>mapItem>>>' + mapItem);
for (Object objItem : (List<Object>)mapItem?.get('HQ__c')) {
hQSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Office__c')) {
officeSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Store__c')) {
storeSets.add((String)objItem);
}
for (Object objItem : (List<Object>)mapItem?.get('Rank__c')) {
rankSets.add((String)objItem);
}
}
}
}
}
if (projectItem?.HQ__c?.split(';') != null && projectItem?.HQ__c?.split(';').size() > 0) {
for (String item : projectItem?.HQ__c?.split(';')) {
hQSets.add(item);
}
}
if (projectItem?.Office__c?.split(';') != null && projectItem?.Office__c?.split(';').size() > 0) {
for (String item : projectItem?.Office__c?.split(';')) {
officeSets.add(item);
}
}
if (projectItem?.Store__c?.split(';') != null && projectItem?.Store__c?.split(';').size() > 0) {
for (String item : projectItem?.Store__c?.split(';')) {
storeSets.add(item);
}
}
if (projectItem?.Rank__c?.split(';') != null && projectItem?.Rank__c?.split(';').size() > 0) {
for (String item : projectItem?.Rank__c?.split(';')) {
rankSets.add(item);
}
}
System.debug('>>>hQSets>>>' + hQSets);
System.debug('>>>officeSets>>>' + officeSets);
System.debug('>>>storeSets>>>' + storeSets);
System.debug('>>>rankSets>>>' + rankSets);
List<Object> updateTempList = new List<Object>();
Map<String,Object> mapTempItem = new Map<String,Object>();
mapTempItem.put('Datetime', Datetime.now().format('yyyy-MM-dd kk:mm:ss.S', 'Asia/Tykyo'));
mapTempItem.put('HQ__c', projectItem?.HQ__c?.split(';'));
mapTempItem.put('Office__c', projectItem?.Office__c?.split(';'));
mapTempItem.put('Store__c', projectItem?.Store__c?.split(';'));
mapTempItem.put('Rank__c', projectItem?.Rank__c?.split(';'));
updateTempList.add(mapTempItem);
useAppListJson.addAll(updateTempList);
String serializeToJson = JSON.serialize(useAppListJson);
projectItem.SYS_ApprovalJson__c = serializeToJson;
update projectItem;
}
}
项目SYS_ApprovalJson__c 的更新结果
[{"Rank__c":["S"],"Store__c":["01B1"],"Office__c":["01"],"HQ__c":["01"],"Datetime":"2022-05-28T08:34:15.000Z"},{"Rank__c":["A","B"],"Store__c":["01B1","0AE0"],"Office__c":["01","0A"],"HQ__c":["01","0A"],"Datetime":"2022-08-31T12:17:52.000Z"},{"Rank__c":["A","C"],"Store__c":["0CH5"],"Office__c":["01","0A"],"HQ__c":["02","0B"],"Datetime":"2022-09-23 14:32:09.388"}]
相关文章
- MySQL方法GROUP_CONCAT的应用
- Salesforce JSON应用(一) 反序列化deserializeUntyped方法,序列化serialize方法
- iOS小技能: static、extern 存储类的应用(创建共享实例、申明公共方法、全局字符串常量)
- 银行应用系统日志文件敏感信息脱敏处理方法
- 删除weblogic应用缓存,weblogic 缓存的删除方法详解数据库
- Java中输出当前日期最全方法整理详解编程语言
- 10 种保护 Spring Boot 应用的绝佳方法详解编程语言
- Python静态方法和类方法的区别和应用(无师自通)
- Linux系统下实现网卡休眠的方法(网卡休眠linux)
- 实现Linux下Qt应用静态编译的方法(linux下qt静态编译)
- 【Oracle】查看补丁的方法(oracle查看补丁)
- 文件Linux 中按名称搜索文件的方法(linux按名字查找)
- 深入理解Linux设备树(DTS)的重要性与应用方法(linuxdts)
- Oracle自增序号的实现方法与应用介绍(oracle自增序号)
- Linux下的IR电视卡使用方法详解(linuxir)
- 科学计数方法在MySQL中的应用(mysql科学计数)
- 深入探究Redis集群:全面解析架构设计与使用方法(redis集群详解)
- 简单易懂:如何使用Oracle导出日志包含关键字:Oracle、日志、导出提高工作效率:Oracle日志导出操作指南详细讲解:细节揭秘——Oracle日志的导出方法实用技巧:Oracle必备技能之日志导出教程专业指导:Oracle日志导出查询详解与应用实践(oracle日志导出)
- 利用MSSQL获取数据库中所有数据表的方法(mssql获取所有数据表)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- MySQL中JSON查询的方法和实践(mysql中json查询)
- MySQL数据库中关于三级地区的设置和应用方法(mysql三级地区)
- 传递参数的标准方法(jQuery.ajax)
- 机房速度和带宽测试的简单方法
- 本地策略提示不能确定应用到此机器的组策略安全性设置的解决方法
- linuxc查找使用库的cflags与libs的方法详解
- C#一个方法返回多个值示例
- C#应用BindingSource实现数据同步的方法