当使用GPath和JSONPath时,它们在语法和使用方式上有一些明显的差异。下面是一些使用示例来说明它们的不同之处:
-
路径表示法:
- GPath: 使用点号来表示层级关系,例如
books.book.author
表示 books → book → author。 - JSONPath: 同样使用点号来表示层级关系,例如
$.books.book.author
表示根节点下的 books → book → author。
- GPath: 使用点号来表示层级关系,例如
-
属性访问:
- GPath: 使用点号后跟属性名称来访问节点的属性,例如
book.@title
表示访问 book 节点的 title 属性。 - JSONPath: 使用点号后跟属性名称在对象中访问属性,例如
$.book.title
表示访问 book 对象的 title 属性。
- GPath: 使用点号后跟属性名称来访问节点的属性,例如
-
索引和通配符:
- GPath: 使用方括号加上索引或者星号(通配符)来访问节点或者数组元素,例如
books[0]
表示访问 books 数组的第一个元素。 - JSONPath: 同样使用方括号加上索引或者星号(通配符)来访问对象或者数组元素,例如
$.books[0]
表示访问 books 数组的第一个元素。
- GPath: 使用方括号加上索引或者星号(通配符)来访问节点或者数组元素,例如
-
过滤器:
- GPath: 使用过滤器语法来筛选满足条件的节点,例如
books.book.findAll { it.price > 10 }
表示筛选出价格大于10的书籍。 - JSONPath: 使用方括号内加上过滤器表达式来筛选满足条件的节点,例如
$.books[?(@.price > 10)]
表示筛选出价格大于10的书籍。
- GPath: 使用过滤器语法来筛选满足条件的节点,例如
注意,在实际使用中,这些语法和示例可能会因为不同的解析器和库而有所差异。以上只是一些简单的示例来说明GPath和JSONPath的不同点。
希望这些示例能够帮助你更好地理解GPath和JSONPath之间的差异!