当前位置: 首页 > wzjs >正文

政府网站app百度论坛发帖

政府网站app,百度论坛发帖,wordpress新建页面文章列表,平面设计毕业设计作品JSON数据的操作,系列文章: 《Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode》 《Jackson的使用与创建Jackson工具类》 《Jackson使用ObjectNode对象实现JSON对象数据(一):增、删…

 JSON数据的操作,系列文章:

《Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode》

《Jackson的使用与创建Jackson工具类》

《Jackson使用ObjectNode对象实现JSON对象数据(一):增、删、改、查》

《Jackson使用ArrayNode对象实现JSON列表数据(二):增、删、改、查》

《Jackson实现JSON数据的合并》

Jackson 库实现 JSON 数据的合并,可以采用基于树模型的深度合并(递归策略),可以保留两个 JSON 的所有层级数据,避免覆盖冲突。在实际开发中,Jackson 功能丰富、安全可靠并且具有比较好的兼容性,这让程序开发人员可以很方便地实现 JavaBean 和以 “键 : 值” 结构保存的 JSON 数据的相互转换。

1、创建 Jackson 工具类

创建 JacksonUtil 类(Jackson工具类),实现JSON数据的合并方法。

package com.pjb.utils;import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;/*** Jackson工具类* @author pan_junbiao**/
public class JacksonUtil
{private static ObjectMapper mapper = new ObjectMapper();/*** 合并 JSON 数据* @return 合并后的 JsonNode 对象*/public static JsonNode mergeJsonNode(JsonNode mainNode, JsonNode updateNode){//参数校验if (mainNode == null && updateNode == null){return null;}if (mainNode == null){return updateNode;}if (updateNode == null){return mainNode;}if (mainNode.isObject() && updateNode.isObject()){ObjectNode mergedNode = (ObjectNode) mainNode;updateNode.fields().forEachRemaining(entry -> {String key = entry.getKey();JsonNode value = entry.getValue();if (mergedNode.has(key)){mergedNode.set(key, mergeJsonNode(mergedNode.get(key), value));} else{mergedNode.set(key, value);}});return mergedNode;} else{// 非对象类型直接覆盖(如数组、基本类型)return updateNode;}}/*** 合并 JSON 数据* @return 合并后的 JSON 字符串*/public static String mergeJsonString(String mainJson, String updateJson){//参数校验if ((mainJson == null || mainJson.length() == 0) && (updateJson == null || updateJson.length() == 0)){return null;}if (mainJson == null || mainJson.length() == 0){return updateJson;}if (updateJson == null || updateJson.length() == 0){return mainJson;}try{//合并 JSON 数据JsonNode mainNode = mapper.readTree(mainJson);JsonNode updateNode = mapper.readTree(updateJson);JsonNode resultNode = mergeJsonNode(mainNode, updateNode);return mapper.writeValueAsString(resultNode);} catch (Exception e){e.printStackTrace();}return null;}
}

2、测试 JSON 数据的合并

创建测试方法,测试 JSON 数据的合并结果。

/*** 合并 JSON 数据*/
@Test
public void mergeJsonTest()
{try{String mainNode = "{\n" +"  \"userId\": 1,\n" +"  \"userName\": \"pan_junbiao的博客\"\n" +"}";String updateNode = "{\n" +"  \"userName\": \"pan_junbiao的博客_001\",\n" +"  \"blogName\": \"您好,欢迎访问 pan_junbiao的博客\",\n" +"  \"blogUrl\": \"https://blog.csdn.net/pan_junbiao\",\n" +"  \"hobbies\": [\"游泳\", \"篮球\", \"足球\"]\n" +"}";//合并 JSON 数据String result = JacksonUtil.mergeJsonString(mainNode, updateNode);//打印结果System.out.println(result);} catch (Exception ex){ex.printStackTrace();}
}

执行结果:

{"userId": 1,"userName": "pan_junbiao的博客_001","blogName": "您好,欢迎访问 pan_junbiao的博客","blogUrl": "https://blog.csdn.net/pan_junbiao","hobbies": ["游泳", "篮球", "足球"]
}

http://www.dtcms.com/wzjs/40317.html

相关文章:

  • 新手学做网站 pdf最新域名ip地址
  • 新疆建设兵团公安厅纪委网站市场营销策划书范文5篇精选
  • 网站加速cdn百度知道在线问答
  • 标志设计的表现形式seo关键词排名优化怎样收费
  • 网站开发有哪些语言浙江百度推广
  • 加快建设公司新版网站网络推广团队
  • 做3个网站需要多大的服务器手游推广加盟
  • 深圳龙岗做网站的公司哪家好网络营销产品概念
  • 更改网站备案负责人设计网站接单
  • 个人网站一年多少钱windows7优化大师官方下载
  • 免费域名注册网站源码seo优化一般包括哪些内容()
  • .net做的网站怎么样高端营销型网站
  • 做网站推广每天加班郑州seo顾问培训
  • 成都网站建设公司高新接外包项目的网站
  • 如何用word做简单的网站宁波网站推广优化
  • 长春火车站是南站还是北站潍坊seo教程
  • 湖南省新邵县建设局网站网页seo搜索引擎优化
  • 鞍山 中企动力提供网站建设网络营销的主要方式
  • 房地产中介网站建设网站排名系统
  • 长沙微信公众号郑州seo建站
  • 买建筑公司网站seo外包软件
  • 南宁网站建设升上去清理优化大师
  • html5手机网站开发视频剪辑培训机构
  • 防网站模板推广普通话标语
  • 进出口贸易网泽成杭州seo网站推广排名
  • 懒人免费建站模板餐饮营销策划方案
  • 视觉设计与制作seo刷关键词排名免费
  • 万州做网站多少钱免费的网站关键词查询工具
  • 一级域名网站怎样收费的模板下载网站
  • wordpress quick chat百度运营优化师