文档章节

JSONPath小试牛刀之Snack3

刘之西东
 刘之西东
发布于 2019/11/27 15:01
字数 288
阅读 80
收藏 0

最近在网上看了些JSONPath的入门例子。打算用Snack3这个框架写写例子。json path对`JSON的处理绝对是神器。

1.准备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,
			"isbn": "0-553-21311-3"
		}],
		"bicycle": {
			"color": "red",
			"price": 19.95
		}
	}
}

2.Meven 依赖

<dependency>
  <groupId>org.noear</groupId>
  <artifactId>snack3</artifactId>
  <version>3.1.5.9</version>
</dependency>

3.示例代码

@Test
public void demo1() {
    String 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,\"isbn\":\"0-553-21311-3\"}],\"bicycle\":{\"color\":\"red\",\"price\":19.95}}}";

    ONode n = ONode.load(json);

    Map map = n.select("$.store.book[0]").toObject(Map.class);

    System.out.println("category: " + map.get("category"));
    System.out.println("author: " + map.get("author"));
    System.out.println("title: " + map.get("title"));
    System.out.println("price: " + map.get("price"));

    System.out.println("========================");
   
    List<String> list = n.select("$.store.book[*].author").toObject(List.class);
    for (String author : list) {
        System.out.println(author);
    }

    //java bean 泛型输出,此处不打印了
    List<BookModel> list2 = n.select("$.store.book")
                             .toObject((new ArrayList<BookModel>(){}).getClass());
}

4.控制台打印结果

category: reference
author: Nigel Rees
title: Sayings of the Century
price: 8.95
========================
Nigel Rees
Evelyn Waugh

© 著作权归作者所有

刘之西东

刘之西东

粉丝 3
博文 28
码字总数 27523
作品 3
杭州
CTO(技术副总裁)
私信 提问
加载中

评论(0)

接口测试框架优化(三)---支持简单串接口

前言 之前两篇文章,第一篇介绍了主要结构,第二篇介绍了主要代码,最近做了一点小优化。 先贴Github地址,本次主要优化一点: 支持单个简单串接口的测试,即下一个接口的一个参数依赖上一个接...

迈阿密小白
2018/05/11
0
0
ModuleNotFoundError: No module named 'jsonpath'

刚才在运行时发现没有这个模块而控制台报错 :NameError: name 'jsonpath' is not defined 想着name 'jsonpath'是不是没有安装,然后就在cmd窗口pip install jsonpath 果然 安装完成后pycha......

anlve
2018/01/12
1.7K
0
spring 3.2.0ga 测试框架

spring3.2终于出ga版了, 发现spring test的改进最大,添加了对 springmvc的测试 看了看文档,将使用方法整理如下: 1,可以使用 @WebAppConfiguration来标明是web应用测试, @ContextConfig...

big-hero
2012/12/20
2K
1
fastjson 1.2.52 版本发布,Java 实现的 JSON 解析库

fastjson 1.2.52 版本发布了,这又是一个功能增强,以及 bug 修复的版本。主要是增强对 JSONPath 的支持。 Issues 增强JSONPath的支持,增强新的JSONPath.extract API,根据path按需解析JSO...

局长
2018/11/19
2.1K
19
一篇长文带你在Python里玩转Json数据

Json简介 Json(JavaScript Object Notation) 很多网站都会用到Json格式来进行数据的传输和交换,就像上篇我提到的网易云音乐接口,它们返回的数据都是Json格式的。 这因为Json是一种轻量级...

千锋Python讲堂
2019/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java关键字 —— new、this、static

  java关键字,也叫保留字(50个),是java有特殊意义的标识符,不能用作参数名、变量名、方法名、类名、包名等。   现在我们讲讲其中三个关键字的使用吧~~~ 一、new关键字 1. 用途:新建...

osc_s2b5kacl
17分钟前
15
0
java 集合框架的工具类Collections

sort(),max(),binarySearch(),fill() public class CollectionsDemo { public static void main(String[] args) { replaceAllDemo(); } public static void replaceAll......

osc_r9yyhhqz
18分钟前
15
0
创龙基于Xilinx Kintex-7系列高性价比FPGA开发板散热风扇接口、SATA接口

处理器 Xilinx Kintex-7系列FPGA处理器,芯片型号为XC7K325T-2FFG676I,兼容XC7K160T/410T-2FFG676I,高达326K逻辑单元,840个DSP Slice,硬件如下图: 散热风扇接口 开发板引出1个散热风扇接...

Tronlong创龙
19分钟前
27
0
【经验分享】学习Java的好书有哪些?Java书籍清单

Java书籍是程序员学习提升技能的重要学习渠道,通过书籍Java程序员可以学习当前流行、重要的相关技能。经典的书经受时间的考验,随着岁月的流逝变得越来越重要,让我们不断的学习和进步。 为...

osc_b1kaj6np
19分钟前
18
0
java Collections的reverseOrder(),SynList()

Collections的reverseOrder(比较器)返回相反的比较器,可以逆转比较器。 SynList()可以让非同步变成同步,底层实现synchronized(){}。 swap交换元素位置。 Collections.shuffle()随机重新排序...

osc_2gkfj43j
20分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部