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

松江建设投资有限公司网站WordPress即时群聊

松江建设投资有限公司网站,WordPress即时群聊,电商运营团队,广告设计公司深圳策划设计公司大家好#xff0c;我是G探险者。 我们编程时#xff0c;在前后端数据交互和传输过程中#xff0c;往往需要对报文中的某个字段或者某个标签的值进行解析读取#xff0c;报文通常是以json或者xml作为数据交换格式#xff0c;而json和xml这两种格式的报文结构都是具备一定的…大家好我是G探险者。 我们编程时在前后端数据交互和传输过程中往往需要对报文中的某个字段或者某个标签的值进行解析读取报文通常是以json或者xml作为数据交换格式而json和xml这两种格式的报文结构都是具备一定的层级关系的也就是说我们要想要拿到报文里面的某个值是可以通过一个路径定位到的那么它们具体是怎么通过路径定位到具体的值呢 今天咱们就来聊一聊XPath和JsonPath. 1. XPath XPath即XML路径语言是一种用于在XML文档中查找信息的语言。它使用路径表达式来选取XML文档中的节点或节点集。这些路径表达式看起来很像文件系统中的路径旨在快速地定位和操作文档中的元素。 特点 数据格式: 专用于XML。查询结构: /root/child/grandchild的形式非常结构化。表达式能力: 支持逻辑运算、算术运算和内置函数。使用场景: 主要用于XML文档的导航和查询。 示例代码 假设有以下XML报文 booksbooktitleJava Programming/titleauthorJames Gosling/author/bookbooktitleXML Fundamentals/titleauthorJohn Doe/author/book /books使用XPath找到所有书籍的标题 // 导入所需的XML处理库 import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; import javax.xml.xpath.XPathConstants; import org.w3c.dom.NodeList;// ...// 创建DocumentBuilderFactory实例以解析XML文档 DocumentBuilderFactory factory  DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder实例 DocumentBuilder builder  factory.newDocumentBuilder(); // 解析XML文档这里假设文件名为books.xml Document doc  builder.parse(books.xml); // 创建XPath实例来查询XML文档 XPath xpath  XPathFactory.newInstance().newXPath(); // XPath表达式用来选择所有的title元素 String expression  /books/book/title; // 执行XPath查询并获取结果节点列表 NodeList titles  (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);// 遍历结果节点列表并打印每个title元素的文本内容 for (int i  0; i titles.getLength(); i) {System.out.println(titles.item(i).getTextContent()); }2. JsonPath JsonPath是从XPath中发展而来的专门用于JSON数据格式。它提供了一种简单的方法来使用类似XPath的语法从JSON对象中提取所需的信息。 特点 数据格式: 专用于JSON。查询结构: 使用点记法例如$.object.property或数组记法例如$[object][property]。表达式能力: 简单主要用于定位和过滤数据。使用场景: 处理RESTful服务返回的JSON数据以及其他JSON数据处理。 示例代码 假设有如下JSON报文 {store: {book: [{ title: Clean Code, author: Robert C. Martin },{ title: The Pragmatic Programmer, author: Andrew Hunt and David Thomas }],bicycle: {color: red,price: 19.95}} }使用JsonPath获取所有书籍的标题 首先需要引入这个依赖 dependencygroupIdcom.jayway.jsonpath/groupIdartifactIdjson-path/artifactIdversion2.8.0/version /dependency // 导入JsonPath库 import com.jayway.jsonpath.JsonPath; import net.minidev.json.JSONArray;// ...// JSON字符串表示一个书店的存货包括书籍和自行车 String json  { \store\: { \book\: [ { \title\: \Clean Code\, \author\: \Robert C. Martin\ }, { \title\: \The Pragmatic Programmer\, \author\: \Andrew Hunt and David Thomas\ } ], \bicycle\: { \color\: \red\, \price\: 19.95 } } }; // JsonPath表达式用来选取所有书籍的标题 String jsonPathExpression  $.store.book[*].title;// 执行JsonPath查询并获取结果为JSONArray JSONArray bookTitles  JsonPath.read(json, jsonPathExpression);// 遍历JSONArray并打印每本书的标题 for (Object title : bookTitles) {System.out.println(title); } 除了上面这个com.jayway.jsonpath 依赖包的方法还有另外一个依赖包可以处理官网学习地址https://github.com/noear/snack3 dependencygroupIdorg.noear/groupIdartifactIdsnack3/artifactId /dependency3. 拓展 除了以上的XPath和JsonPath其实还有类似的路径表达式是来从对象中获取某个值 SpELSpring Expression Language和ELExpression Language通常用于在Java企业应用中进行动态查询和管理应用程序的行为。 SpEL是Spring框架提供的一种功能强大的表达式语言而EL最初是为了简化JSP页面的数据展示而生后来也被整合到了JSF和其他Java企业技术中。 3.1 SpEL 数据格式: 不依赖特定数据格式可以用于对象图导航。查询结构: 使用类似于JsonPath的点记法如beanName.method()。表达式能力: 非常强大支持方法调用、关系运算、正则表达式匹配等。使用场景: 在Spring框架中进行配置、验证、模板操作等非常灵活。 示例代码 import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.Expression;// 创建一个表达式解析器 ExpressionParser parser  new SpelExpressionParser();// 解析一个字符串表达式并执行字符串拼接 Expression exp  parser.parseExpression(Hello World.concat(!)); String message  (String) exp.getValue();// 输出结果将打印Hello World! System.out.println(message); 3.2 EL 数据格式: 不依赖特定数据格式通常用于访问JavaBeans对象。查询结构: 使用${object.property}的形式主要用于Web层。表达式能力: 相对简单支持简单的属性访问和算术操作。使用场景: 主要用于JSP和JSF等Java EE技术中用于简化页面层的数据展示。 import javax.el.ELProcessor;// 创建ELProcessor实例 ELProcessor elProcessor new ELProcessor();// 定义一个变量并赋值 elProcessor.setValue(greeting, Hello);// 使用EL表达式拼接字符串 String result (String) elProcessor.eval(greeting.concat( World!));// 输出结果将打印Hello World! System.out.println(result); 4. 对比分析 特性XPathJsonPathSpELEL数据格式XMLJSON任意任意查询语法结构化路径点记法/数组记法点记法/方法调用简化属性访问表达式能力逻辑/算术运算定位/过滤方法调用/正则表达式简单属性/算术使用场景XML文档查询JSON数据处理Spring应用JSP/JSF页面 5. 总结 XPath和JsonPath都是强大的查询语言它们使得从复杂的数据结构中提取信息变得更加容易。XPath适用于XML数据而JsonPath适用于JSON数据。两者各有优势具体使用哪一个取决于你的数据格式和需求。在Java中有多个库可以用来执行XPath和JsonPath查询如javax.xml.xpath和com.jayway.jsonpath等。 在选择使用哪种表达式语言时通常取决于你的应用场景和所操作的数据类型。如果你在处理XML或JSON数据XPath和JsonPath是专门为这些格式设计的。而如果你在Spring框架中工作SpEL将提供更丰富的功能和更大的灵活性。对于简单的Web页面数据展示EL是一个轻量级且易于使用的选择。
http://www.pierceye.com/news/764518/

相关文章:

  • 凡科建站官网入口wordpress个性首页
  • 上海信息技术做网站不连接wordpress安装
  • 高端网站开发培训免费企业黄页查询网站
  • 最新的网站开发技术全国新冠新增最新消息
  • 试玩app推广网站建设广州网站维护制作
  • 2018年网站设计公司阿里巴巴网官方网站
  • 英文网站常用字体icp备案的网站名称
  • 扬州恒通建设网站镇江润州区建设局网站
  • 关于网站制作的论文网站注册时间
  • 一个人可以备案几个网站做图去哪个网站找素材
  • 江苏建设管理信息网站自己可以做装修效果图的网站
  • html网站欣赏杭州战争网站建设
  • 乐清市做淘宝网站公司网站支付体现功能怎么做
  • 做网站公司促销海报本网站只做信息展示
  • 网站建设商城模板仿我喜欢网站源码免费
  • 工商服务网优化网站推广
  • 嘉兴网站系统总部做一个网站一般要多少钱
  • win10电脑做网站网站为什么有价值是
  • 凡科网站建设视频impreza 4 wordpress
  • 北京大兴地区网站建设国外网站设计欣赏分析
  • 如何在网站中加入百度地图广东深圳软件开发公司
  • 诸城网站建设报价兰州网站建设公司有哪些
  • 技术网站的费用怎么做会计分录潍坊模板开发建站
  • 男生女生在床上做的那个网站公众号推广一个6元
  • 湛江做网站设计公司北京婚恋网站哪家最好
  • 大型网站建设的难点是什么物联网技术
  • 怎么免费建个免费的站点写作网站5妙不写就删除
  • 深圳网站建设软件开发公司排名网站做301的坏处
  • ai网站制作的图片
  • 自己想开个网站怎么弄移动端网站设计欣赏