背景:

通过平台执行接口时,接口往往返回的JSON串,所以平台要能提供方便快捷的JSON解析函数。

一、Json字符串:

 1 {
2 "lemon": {
3 "teachers": [
4 {
5 "id": "101",
6 "name": "张三",
7 "addr": "四川成都",
8 "age": 25
9 },
10 {
11 "id": "102",
12 "name": "李四",
13 "age": 28
14 },
15 {
16 "id": "103",
17 "name": "Mike",
18 "addr": "广东深圳",
19 "age": 16
20 },
21 {
22 "id": "104",
23 "name": "王哥",
24 "addr": "广东广州",
25 "age": 29
26 }
27 ],
28 "salesmans": [
29 {
30 "id": "105",
31 "name": "毛毛",
32 "age": 17
33 },
34 {
35 "id": "106",
36 "name": "大树",
37 "age": 27
38 }
39 ]
40 },
41 "avg": 25
42 }

二、JsonPath代码

 1 $.lemon.teachers[*].name
2
3 获取所有老师的的名称
4
5 $..name
6 ..name
7 获取所有人的名称
8
9 $.lemon.*
10 所有的老师和销售(没有指定属性,无法直接显示)
11
12 $.lemon..age
13 $..age
14 所有人的年龄
15
16 $.lemon.teachers[*].age
17 ..teachers[*].age
18 ..teachers..age
19 所有老师的年龄
20
21 $.lemon.teachers[1].name
22 索引为1(第2个)老师的信息
23
24 $..teachers[1,2].name
25 ..teachers[:2].name
26 ..teachers[2:].name
27 ..teachers[0:2].name
28 ..teachers[-1].name (不支持)
29 ..teachers[-1:].name (倒数一个)
30 ..teachers[-2:].name (倒数两个)
31 指定范围老师的姓名
32
33
34 ..teachers[?(@.age< 20)].name
35 所有年龄小于20的年龄信息
36
37
38 ..teachers[?(@.age<=$['avg'])].name
39 小于或等于平均年龄的老师信息
40
41 $..teachers[?(@.name=~ /.*PPY/i)].name
42 所有名称满足正则表达式的老师信息 (忽略大小写)
43
44 $..name (string类型)
45 ..age (integer类型)
46 所有的信息
47
48 ..teachers.length() (不支持)
49 老师的数量
50
51 #演示根据条件选择(当包含数据有多行时,要取出其中某一行时特别有用)
52 ..teachers[?(@.id=="103")].name (不支持双引号)
53 ..teachers[?(@.id=='103')].name
54 ..teachers[?(@.age>=25)].name
55 指定ID的老师的name ,语法 [?(@.属性条件表达式)]
56
57
58 #多条件(or、and)59 ..teachers[?(@.age<=20 || @.age>=28)].name60 ..teachers[?(@.age<=20 && @.id=='103')].name

Json解析案例-teachers数据集的更多相关文章

  1. Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

    Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...

  2. android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】

    android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...

  3. Java基础-处理json字符串解析案例

    Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...

  4. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  5. IOS中Json解析的四种方法

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...

  6. JSON解析之——Android

    JSON解析之——Android 一.google天气案例 之前xml学习中的google天气的例子非常形象,所以我们继续以google天气作为案例进行学习,下面是我从google官网下载下来的天气J ...

  7. Json应用案例之FastJson

    这几天在网上找关于Json的一些案例,无意当中找到了一个我个人感觉比较好的就是阿里巴巴工程师写的FastJson. package com.jerehedu.fastjson; import java ...

  8. 接口测试入门(3)--使用httpClient进行登录用例操作/set-cookies验证/ List<NameValuePair>设置post参数/json解析

    (最近学的都是很基础的接口测试,都是基于UI界面可见的接口,就是发请求,接收响应,分析返回的结果,校验,对共通模块进行封装,仅此而已,其实做自动化的思路基本都是如此,UI也是.) 现在开始用httpC ...

  9. Android JSON 解析关键代码

    Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成 ...

随机推荐

  1. LOJ #2769 -「ROI 2017 Day 1」前往大都会(单调栈维护斜率优化)

    LOJ 题面传送门 orz 斜率优化-- 模拟赛时被这题送走了,所以来写篇题解( 首先这个最短路的求法是 trivial 的,直接一遍 dijkstra 即可( 重点在于怎样求第二问.注意到这个第二问 ...

  2. [Linux]非root的R环境被conda破坏后如何恢复?

    记录说明 这篇文章本来是用来记录Linux非root环境下安装PMCMRplus包折腾过程,但后来试过了各种方法安装不上这个R包后,我换上了Miniconda来安装.经前人提醒,一开始安装Minico ...

  3. 关于ARM的PC指针(什么时候PC+8,PC+4,PC-4,PC-8)转

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.                                                 ...

  4. 关于Stream的使用

    引言 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作.使用Stream API 对集合数据进行操作,就类似于使用 ...

  5. 在Kubernetes上安装MySQL-PXC集群

    官方部署文档地址:https://www.percona.com/doc/kubernetes-operator-for-pxc/kubernetes.html 一.部署方式 示例在k8s集群(至少3 ...

  6. javaSE高级篇5 — java8新特性详解———更新完毕

    java8新特性 在前面已经见过一些东西了,但是:挖得有坑儿 1.lambda表达式 lambda表达式是jdk1.8引入的全新语法特性 它支持的是:只有单个抽象方法的函数式接口.什么意思? 就是说: ...

  7. C语言中宏定义#define 、 typedef 和枚举类型

    替换时机 #define :预编译阶段简单替换,编译阶段展开源程序(1.词法扩展==程序生成期间的字符串替换 2.语义扩展==生成特定指令) 枚举常量:编译阶段确定其值 内联函数:编译阶段插入代码 t ...

  8. 学习java的第十二天

    一.今日收获(前两天家里有事,博客都忘了发了,唉) 1.通过看哔哩哔哩看黑马程序员的教学视频,学习了java中的数据类型自动转换.强制转换及注意事项三节 2.简单看了看完全学习手册 二.今日问题 1. ...

  9. LeetCode替换空格

    LeetCode 替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 实例 1: 输入:s = "We are happy." 输 ...

  10. VIM中把^M替换为真正的换行符

    :%s/\r/\r/g 或者:%s/^M/\r/g 红色的^M不是直接打出,而是按住ctrl再依次按下V和M