FastJson解析器JsonPath的使用
FastJson解析器JsonPath的使用FastJson是一个Java语言编写的高性能功能完善的JSON库。它提供了JSON格式字符串和Java对象之间的转换,以及Java对象之间的转换。而JsonPath则是一种查询语言,用于从JSON文档中提取信息。
下面是一个简单的示例,展示如何使用
FastJson的JsonPath功能:
1. 引入FastJson库
首先,你需要在项目中引入FastJson的依赖。
如果你使用Maven,可以在pom.xm1中添加如下依赖:
<dependency>
‹groupId>com.alibaba</groupId>‹artifactId>fastjson</artifactId>
<Version>版本号</version><!--
请替换为最新版本号-->
</ dependency>
2. 准备JSON字符串
假设我们有以下的JSON字符串:
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the
Century",
},
{
"price": 8.95
"category": "fiction","author": "Evelyn Waugh",
"title": "Sword of
Honour",
"price": 12.99
{
"category": "fiction",
"author": "Herman
Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
{
"category": "fiction",
"author": ". R. R.
Tolkien",
"title": "Lord of theRings",
"isbn": "0-395-19395-8",
"price": 22.99
}
"bicycle": {
"color": "red",
"price": 19.95
}
"expensive": 10
}
3. 使用JsonPath查询
现在,我们可以使用JsonPath来查询JSON中的特定信息。以下是一些示例:
获取所有书的标题:
String json = "上面的JSON字符串";
List<String> titles =(List<String >)
JSONPath. evalljson,
"S.store.book[*].title");
for (String title : titles) {
System.out.println (title);
}
获取价格超过10的书:
List<Object> books =
(List<Object >)
JSONPath. evalljson,
"$.store.bookl? (@.price > 10)]");
for (Object book : books) ‹
System.out.println(JSONObject.toJ
SONString (book));
}
获取最贵的书的标题和价格:
Object maxPriceBook =JSONPath. evalljson,
"$.store.book[max@.price)]");
System.out.println("最贵的书的标题:
1+
JSONObject.toJSONString(maxPriceB
ook).contains("|"titlel":")?
JSONObject. parseObject (JSONObject
• toJSONString(maxPriceBook)).gets
tring("title"):"未知");
System.out.println("最贵的书的价格:
"+
JSONObject.toJSONString(maxPriceB
ook).contains("|"price\":") ?
JSONObject. parseObject (JSONObject
• toJSONString(maxPriceBook)).getD
ouble("price"):"未知");
这些只是JsonPath的一些基本用法。你可以根据具体需求,结合JsonPath的语法规则,编写更复杂的查询表达式。
更多推荐
所有评论(0)