zoukankan      html  css  js  c++  java
  • JSONPath小试牛刀之Snack3

    最近在网上看了些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
    
  • 相关阅读:
    执行sudo命令时command not found的解决办法
    CentOS7编译安装libc++和libc++abi
    CentOS 7 编译安装clang+llvm
    如何使用 Issue 管理软件项目?
    西门子 S7-300 PLC 从入门到精通的100个经典问题
    PLC_SIM 出现I/O访问错误-技术论坛-工业支持中心-西门子中国
    C# Lambda表达式
    C# Task中的Func, Action, Async与Await的使用
    C#委托的介绍(delegate、Action、Func、predicate)
    委托 你怎么看?
  • 原文地址:https://www.cnblogs.com/noear/p/11959034.html
Copyright © 2011-2022 走看看