• 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
    
  • 相关阅读:
    Java语言基础(3)
    Java语言基础(2)
    Java语言基础(1)
    标准C语言(13)
    标准C语言(12)
    标准C语言(11)
    标准C语言(10)
    IDEA 学习笔记之 Console显示日志大小
    Java 学习笔记之 线程sleep方法
    Java 学习笔记之 线程isAlive方法
  • 原文地址:https://www.cnblogs.com/noear/p/11959034.html
Copyright © 2020-2023  润新知