更新json响应salesforce —— updating json response salesforce

导读:本篇文章讲解 更新json响应salesforce —— updating json response salesforce,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

📖摘要


今天分享下 —— 更新json响应salesforce —— updating json response salesforce 的一些基本知识,欢迎关注!


🌂问题描述

{ “FirstName” : “Foo”, 
  “LastName” : “Bar”, 
  “Address” : 
       { “city” : “Pune”, “state” : “Maharashtra”, “country” : “India” } 
}

我的问题是从上述json格式中获取“城市”值,并将其更新为“美国”(例如)。

有什么可能的解决方案?我通过使用 response.getbody() 获得上面的json格式。

就像我正在使用

Map<string,object> objmap= (Map<string,object>)json.deserializeuntype(response.getbody());
system.debug(objmap.get('Address'));

因此,从现在开始,我必须更新city =“ USA”。

实际的json:

    {
	"size": 1,
	"totalSize": 1,
	"done": true,
	"queryLocator": null,
	"entityTypeName": "FlowDefinition",
	"records": [{
		"attributes": {
			"type": "FlowDefinition",
			"url": "/services/data/v42.0/tooling/sobjects/FlowDefinition/3007F000000LP9xQAG"
		},
		"FullName": "test_flow",
		"DeveloperName": "test_flow",
		"Metadata": {
			"activeVersionNumber": null,
			"description": null,
			"masterLabel": null,
			"urls": null
		}
	}]
} {
	data: [{
		"arrs": "memberKey,mobileNumber,drawAt,claimAt"
	}]
}

如我们所见,字段 activeVersionNumbernull,因此我们需要将其设置为0或1。activeVersionNumber 的返回类型为 object。如果我使用 Json2Apex,则返回类型为 Object,但我需要在其中设置整数值。


🚀回答

您可以将JSON转换为等效的Apex类,唯一的缺点是有时我们不知道创建 Apex 类的 JSON 结构。

相反,我们可以使用 deserializeuntypedeserializeuntype向我们返回 Map keyValue对,可以利用我们的优势,更改 map 中的值并再次对其进行序列化。

String input = '{"size":1,"totalSize":1,"done":true,"queryLocator":null,"entityTypeName":"FlowDefinition","records":[{"attributes":{"type":"FlowDefinition","url":"/services/data/v42.0/tooling/sobjects/FlowDefinition/3007F000000LP9xQAG"},"FullName":"test_flow","DeveloperName":"test_flow","Metadata":{"activeVersionNumber":null,"description":null,"masterLabel":null,"urls":null}}]}';

Map<string,object> objmap= (Map<string,object>)json.deserializeUntyped(input );

List<Object> recordsMap =(List<Object>) objmap.get('records');

for(Object obj: recordsMap ){
    Map<String,Object> mapOfrecord = ( Map<String,Object>)obj;
    Map<String,Object> metaDataObject =( Map<String,Object>)  mapOfrecord.get('Metadata'); 
    metaDataObject.put('activeVersionNumber',1);
}


System.debug(JSON.serializePretty(objmap));

输出=>

  {
  "records" : [ {
    "Metadata" : {
      "urls" : null,
      "masterLabel" : null,
      "description" : null,
      "activeVersionNumber" : 1
    },
    "DeveloperName" : "test_flow",
    "FullName" : "test_flow",
    "attributes" : {
      "url" : "/services/data/v42.0/tooling/sobjects/FlowDefinition/3007F000000LP9xQAG",
      "type" : "FlowDefinition"
    }
  } ],
  "entityTypeName" : "FlowDefinition",
  "queryLocator" : null,
  "done" : true,
  "totalSize" : 1,
  "size" : 1
}

🎉最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97469.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!