用于JSON的XPath介绍及应用实例

419 阅读4分钟

XPath for JSON

用于JSON的XPath的定义

json的Xpath总是适用于JSON的数据项,因为我们可以说在同样的情况下,xpath被用作XML文档的组合。基本上,JSON的数据项通常是匿名的,它没有一个根成员对象。我们使用json path作为一个抽象的名字来引用顶层对象的数据项。JSON的Xpath在JSON中是非常有用和重要的。

什么是JSON的XPath?

JSON的Xpath包含点符号,对于输入路径,JSON路径处理器使用内部表达式,而对于输出路径,它将被转换为一般的括号符号。JSON的Xpath将允许 "*"作为成员名称的通配符,它包括数组。它将借用后裔的操作符。JSON将采用一种用圆括号编写的脚本语言。我们可以在当前对象中使用*符号来过滤那些通过布尔表达式支持的表达式。

如何对JSON使用XPath?

JSON数据将从网络服务中返回,其中包含单一的父对象,它将子对象包裹在一个数组中。假设我们直接使用父对象,那么报告就不能详细地显示记录了。

  • 通过使用json路径的表达方式,返回子对象的数组或嵌套数组是比较方便的,如下所示。

代码 -

{

"School": {

"stud": [

{

"Name": "ABC",

"No": "1",

"Addr": "Pune",

"Grade": "A"

},

{

"Name": "PQR",

"No": "2",

"Addr": "Mumbai",

"Grade": "A"

}

]

}

XPath for JSON 1

  • 我们还可以通过使用json数据过滤器来过滤json数据xpath,它被用来显示匹配标准的对象,具体如下。

代码 -

{

"Organization": {

"Employee": [

{

"Emp_No": "101",

"Name": "ABC",

"Addr": "Mumbai",

"Salary": "25k"

},

{

"Emp_No": "102",

"Name": "PQR",

"Addr": "Pune",

"Salary": "30k"

}

]

}

XPath for JSON 2

  • 数据是以交互方式找到的,它是从客户端的JSON结构中提取的,没有使用任何特殊的脚本。
  • 如果假设客户端正在请求JSON数据,通过最小化响应服务器的使用带宽,将其减少到相关部分到服务器上。
  • 如果一个工具要从JSON结构中挑选部分,它将使用以下的xpath表达式。

JSON表达式的X路径

/school/ student\[1\]/ stud\_name
  • 我们也可以通过使用JSON在xpath中写出同样的内容,如下所示:
x.school.student\[0\].stud\_name
  • 我们也可以把上面的语句改成如下:
X[‘school’][‘student’] [0][‘stud_name’]
  • 在javascript中,PHP和python将持有JSON的结构,它自然是基于语言的特性。
  • 它将只涵盖1.0 xpath的基本部分。它在运行时是有效的。json路径的表达总是指JSON的结构,因为我们可以说,以同样的方式,xpath被用于xml的组合。
  • 我们知道,json路径表达式将以美元($)的符号开始。它是指查询中的根元素。基本上美元符号后面是序列中的子元素。
  • 通过使用xpath json,可以交互式地查找数据并从项目中提取数据。为了给客户的请求指定JSON的相关部分,服务器将在其响应中减少数据。

用于JSON表达式的XPath

  • 下面是我们在JSON中使用的xpath json表达式,如下所示。下面是显示表达式的表格,如下。
Sr. No.XpathJson描述
1点(.)@用来定义当前元素的对象。
2/$这是用来定义根元素的对象。
3()不适用这是用来定义xpath中的分组。
4不适用()它只不过是脚本的表达式,是脚本引擎中的底层。
5不适用[开始:结束]这是一个从ES4中借用的数组切片操作符。
6[]?()它用于将过滤器应用于脚本的表达式。
7/[]这是一个子运算符,在表达式中使用。
8..不适用这是在表达式中使用的父运算符。
9//..它将借用E4X中的JsonPath语法。
10**它在对象元素中使用,不管使用它们的名字。它在表达式中是一个通配符。
11@不适用它用于访问属性。Json数据项不包含任何属性。
12[][]它是下标Xpath的操作符,使用这个操作符来迭代元素谓词的集合。在json和javascript中,它是本地数组的操作符。
13|[,]在xpath的结果中,它是一个联合运算符,是一组节点的组合。Json路径是允许我们有一组数组的索引和名称。
  • $将代表被省略的根数组的对象。表达式将参考JSON的结构。

JSON的XPath例子

  • 下面是json的xpath的例子,如下。在下面的例子中,我们正在创建父类为组织,子类为雇员。

代码 -

{

"Organization": {

"Employee": [

{

"Emp_No": "1001",

"Name": "XYZ",

"Addr": "Chennai",

"Salary": "30k"

}

{

"Emp_No": "1002",

"Name": "ABC",

"Addr": "Mumbai",

"Salary": "25k"

},

{

"Emp_No": "1003",

"Name": "PQR",

"Addr": "Pune",

"Salary": "30k"

}

]

}

kljh

  • 在下面的例子中,我们创建的父类名称是学校,我们创建的两个子类名称是学生和教师,如下所示。

代码 -

{

"School": {

"Student": [

{

"Stud_no": "1",

"Name": "XYZ",

"Addr": "Mumbai",

}

{

"Stud_no": "2",

"Name": "ABC",

"Addr": "Mumbai",

},

{

"Stud_no": "3",

"Name": "PQR",

"Addr": "Mumbai",

}

"Teacher": {

"name": "ABC",

}

},

"stud": 101

]

}

kbvfg

结论

JSON的Xpath将允许 "*"作为成员名称的通配符,它包括数组。它总是适用于JSON的数据项,因为我们可以说,在同样的情况下,xpath被用作XML文档的组合。