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

武汉做网站的公司哪家好网站优化流程

武汉做网站的公司哪家好,网站优化流程,四川建设岗培注册中心官网,浙江网站建设哪里好背景 最近使用json实现复杂业务配置, 因为功能需要解析读取json的中节点数据。如果使用循环或者stream处理,可以实现,但是都过于麻烦。在想能否使用更简单json读取方式,正好发现fastjson支持该功能,本文做一个记录 案例说明 示…

背景

最近使用json实现复杂业务配置, 因为功能需要解析读取json的中节点数据。如果使用循环或者stream处理,可以实现,但是都过于麻烦。在想能否使用更简单json读取方式,正好发现fastjson支持该功能,本文做一个记录

案例说明

示例1使用fastjson实现,依赖如下

           <!--alibaba.json和依赖包--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version></dependency>

为了对比写法便捷性,示例2也提供jackson的部分实现方式。

示例1. fastjson实现json指定节点按条件过滤提取数据

使用 JSONPath.eval 来筛选 JSON 数据中符合特定条件的元素。以下是使用 eval 方法提取 author 等于 “Nigel Rees” 的那条记录的示例代码:

public class JSONPathExample {public static void main(String[] args) {String json = "{\n" +"  \"store\": {\n" +"    \"book\": [\n" +"      { \"category\": \"reference\", \"author\": \"Nigel Rees\", \"title\": \"Sayings of the Century\", \"price\": 8.95 },\n" +"      { \"category\": \"fiction\", \"author\": \"Evelyn Waugh\", \"title\": \"Sword of Honour\", \"price\": 12.99 },\n" +"      { \"category\": \"fiction\", \"author\": \"Herman Melville\", \"title\": \"Moby Dick\", \"price\": 8.99 },\n" +"      { \"category\": \"fiction\", \"author\": \"J. R. R. Tolkien\", \"title\": \"The Lord of the Rings\", \"price\": 22.99 }\n" +"    ],\n" +"    \"bicycle\": {\n" +"      \"color\": \"red\",\n" +"      \"price\": 19.95\n" +"    }\n" +"  }\n" +"}";JSONObject jsonObject = JSON.parseObject(json);JSONArray result = (JSONArray) JSONPath.eval(jsonObject, "$.store.book[?(@.author == 'Nigel Rees')]");for (Object book : result) {System.out.println(book);}}
}

运行结果如下,符合预期。而且代码非常简洁。

{"author":"Nigel Rees","price":8.95,"category":"reference","title":"Sayings of the Century"}

示例2. jackson实现json指定节点按条件过滤提取数据

jackson 不支持直接使用 JSONPath 表达式,但可以通过结合 Jackson 和 Java 流操作实现类似的功能。以下是一个使用 Jackson 过滤 JSON 数据中 type 为 ‘AggregateRoot’ 的节点的示例:

public class JacksonExample {public static void main(String[] args) throws IOException {String json = "{\n" +"  \"classDiagram\": {\n" +"    \"nodes\": [\n" +"      { \"id\": \"1\", \"type\": \"AggregateRoot\", \"name\": \"Node1\" },\n" +"      { \"id\": \"2\", \"type\": \"Entity\", \"name\": \"Node2\" },\n" +"      { \"id\": \"3\", \"type\": \"AggregateRoot\", \"name\": \"Node3\" },\n" +"      { \"id\": \"4\", \"type\": \"ValueObject\", \"name\": \"Node4\" }\n" +"    ]\n" +"  }\n" +"}";ObjectMapper objectMapper = new ObjectMapper();JsonNode rootNode = objectMapper.readTree(json);JsonNode nodesNode = rootNode.path("classDiagram").path("nodes");List<Map<String, Object>> nodes = new ArrayList<>();if (nodesNode.isArray()) {nodes = StreamSupport.stream(nodesNode.spliterator(), false).filter(node -> "AggregateRoot".equals(node.path("type").asText())).map(node -> objectMapper.convertValue(node, Map.class)).collect(Collectors.toList());}for (Map<String, Object> node : nodes) {System.out.println(node);}}
}

总结

fastjson的JSONPath.eval方法对于快速解析json数据十分便利,后续再记录更多的使用技巧。

http://www.mmbaike.com/news/29114.html

相关文章:

  • 中英文 微信网站 怎么做百度seo排名优化公司
  • wpf做网站教程网站提交收录入口
  • 电脑网站建设seo排名方案
  • 英文网站制作 官网网站制作哪家公司好
  • 手机做推广比较好的网站电商网站建设价格
  • wordpress 网址补全seo关键词首页排名代发
  • 宝山专业做网站领硕网站seo优化
  • 傻瓜式网站制作阿里大数据分析平台
  • 自己做网站可行吗手机优化大师官方免费下载
  • 做试管婴儿的网站百度安装app
  • 北京微信网站建设公司疫情优化调整
  • 网站开发流程心得体会百度西安分公司地址
  • 网站性质河北百度代理公司
  • 营销案例分析报告模板郴州网站seo外包
  • 云虚拟主机wordpress新站seo竞价
  • 外贸出口营销网站小程序运营推广公司
  • dw8 php做购物网站教程新泰网站seo
  • 东莞商业网站建设常识搜索引擎平台
  • wordpress写文章seo整站优化推广
  • 大连建站公司seo推广教程seo高级教程
  • 网站建设信息模板下载网络营销典型案例
  • 网站开发入那个科目小程序开发费用明细
  • 浙江住房和城乡建设部网站域名官网
  • 长网页网站站内优化主要从哪些方面进行
  • 免费做的英文网站搜索引擎营销的常见方式
  • 潍坊疫情最新消息今天又增加9人360优化关键词
  • 苏州装修公司网站建设浙江专业网站seo
  • 私人网站如何做竞价湖北seo
  • 网站正在建设中模板 html产品推广运营方案
  • 私活接单平台东莞seo网络培训