• jsonpath的使用


     

    运算符(Operators)

    运算符说明
    $ 根元素
    @ 当前元素
    * 通配符,可以表示任何元素
    .. 递归搜索
    . 子节点(元素)
    ['' (, '')] 一个或者多个子节点
    [ (, )] 一个或者多个数组下标
    [start:end] 数组片段,区间为[start,end)
    [?()] 过滤器表达式,其中表达式结果必须是boolean类型,如可以是比较表达式或者逻辑表达式

    JsonPath举例

    { "lemon": { "teachers": [ { "id": "101", "name": "华华", "addr": "湖南长沙", "age": 25 }, { "id": "102", "name": "韬哥", "age": 28 }, { "id": "103", "name": "Happy", "addr": "广东深圳", "age": 16 }, { "id": "104", "name": "歪歪", "addr": "广东广州", "age": 29 } ], "salesmans": [ { "id": "105", "name": "毛毛", "age": 17 }, { "id": "106", "name": "大树", "age": 27 } ] }, "avg": 25 }

    JsonPath路径说明
    $.lemon.teachers[*].name 获取所有老师的的名称
    $..name 获取所有人的名称
    $.lemon.* 所有的老师和销售
    $.lemon..age 所有人的年龄
    $..age 所有人的年龄
    $.lemon.teachers[*].age 所有老师的年龄
    $.lemon.teachers[3] 索引为3(第4个)老师的信息
    $..teachers[3] 索引为3(第4个)老师的信息
    $.lemon.teachers[-2] 倒数第2个老师的信息
    $..teachers[-2] 倒数第2个老师的信息
    $..teachers[1,2] 第2到第3个老师的信息
    $..teachers[:2] 索引0(包含)到索引2(不包含)的老师信息
    $..teachers[1:3] 索引1(包含)到索引3(不包含)的老师信息
    $..teachers[-2:] 最后的两个老师的信息
    $..teachers[2:] 索引2开始的所有老师信息
    $..teachers[?(@.addr)] 所有包含地址的老师信息
    $.lemon.teachers[?(@.age < 20)] 所有年龄小于20的年龄信息
    $..teachers[?(@.age <= $['avg'])]] 小于或等于平均年龄的老师信息
    $..teachers[?(@.name =~ /.*PPY/i)] 所有名称满足正则表达式的老师信息 (忽略大小写)
    $..* 所有的信息
    $.lemon.teachers.length() 老师的数量
  • 相关阅读:
    Android设计模式(三)--装饰模式
    kmp算法总结
    SDWebImage源代码解析(二)
    关于C++构造函数一二
    逆向随笔
    iOS中的crash防护(二)KVC造成的crash
    git-osc自己定义控件之:CircleImageView
    java中继承关系学习小结
    openwrt针对RT5350代码下载,配置和编译
    MySQL监控
  • 原文地址:https://www.cnblogs.com/fyangq/p/12909425.html
Copyright © 2020-2023  润新知