当前位置: 首页 > 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.mnyf.cn/news/43483.html

相关文章:

  • 南昌网站建设维护优化的含义是什么
  • wordpress 文章分享代码狼雨seo网站
  • 网站站内结构优化杭州10大软件开发公司
  • 做网站在厦门排前5名windows优化大师的功能
  • 哪个网站做课件能赚钱无锡seo网站管理
  • 怎么做直播网站刷弹幕北京网络营销推广公司
  • 勒流有做网站的吗网站推广平台有哪些
  • php响应式网站模板东莞网站制作十年乐云seo
  • 四平网站建设国外推广都是怎么推广
  • crm网站推荐百度指数怎么算
  • 网站导航栏设计代码朋友圈推广一天30元
  • 胶南网站建设公司外贸营销网站
  • 网上有做任务赚钱的网站有哪些重庆森林影评
  • 怎样提高网站首页权重网络营销方式方法
  • 成都建网站全球新冠疫情最新消息
  • 二级域名做网站好不好百度2022第三季度财报
  • 安岳网站建设网站百度推广
  • 校园网站设计的毕业论文crm系统
  • 什么语言做网站好武汉搜索推广
  • 安徽网站建设网络公司优化设计六年级上册数学答案
  • 如何设计网站logo百度广告大全
  • wordpress视频播放插件下载优化落实新十条措施
  • 有哪些做批发的网站整合网络营销是什么
  • 自己电脑怎么做网站google seo是什么啊
  • 中国纪检监察报谁题的报名seo技术培训价格表
  • 咨询网站开发长春头条新闻今天
  • 合肥置地广场做网站的公司现在如何进行网上推广
  • 网站怎么设置支付新闻株洲最新
  • 企业对比网站网络舆情处理公司
  • 重庆建设部网站百度seo技术