背景:

通过平台执行接口时,接口往往返回的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. CF45G

    考虑哥德巴赫猜想:一个偶数可以被拆分两个质数. 所以我们考虑如果不是偶数的话,我们拆分成\((2,m-2)\)或者\((3,del(m - 3))\) 如果是偶数的话\(del(m)\),我们直接枚举 ...

  2. 【2020五校联考NOIP #8】自闭

    题目传送门 题意: 有一个 \(n \times m\) 的矩阵,里面已经填好了 \(k\) 个非负整数. 问是否能在其它 \(n \times m-k\) 个格子里各填上一个非负整数,使得得到的矩阵 ...

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

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

  4. Codeforces Gym 101480C - Cow Confinement(扫描线+线段树)

    题面传送门 题意: 有一个 \(10^6\times 10^6\) 的地图.其中 \(m\) 个位置上有花,\(f\) 个矩形外围用栅栏围了起来.保证 \(f\) 个矩形两两之间没有公共点. \(q\ ...

  5. P6604 [HNOI2016]序列 加强版

    *I. P6604 [HNOI2016]序列 加强版 摘自学习笔记 简单树论 笛卡尔树部分例题 I. 和 P6503 比较类似.我们设 \(f_i\) 表示全局以 \(i\) 结尾的子区间的最小值之和 ...

  6. 从 [P4240 毒瘤之神的考验] 谈 OI 中的美学

    感觉这题真的特别有意思,涉及了 OI 中很多非常有意思.非常美的手法,比如--平衡两部分的时间复杂度.\(n \ln n\) 的那个 Trick等等,真的一种暴力的美学. 题目大意: 多组询问,求 \ ...

  7. CURL常用参数

    1. CURL简介 cURL是一个利用URL语法在命令行下工作的文件传输工具.它支持文件上传和下载,是综合传输工具.cURL就是客户端(client)的URL工具的意思. 2. 常用参数 -k:不校验 ...

  8. [R]在dplyr基础上编写函数-(1)eval

    tidyverse系列的R包虽然解放了大家的双手,但同时也束缚了我们重新编写函数的能力.在这一套语法中,要实现作为函数参数的字符串和变量之间的相互转换困难重重,但只要掌握了其中原理后,也就能够游刃有余 ...

  9. R语言与医学统计图形【1】par函数

    张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...

  10. C#gridview颜色提示

    OnRowCreated="gridStatistic_RowCreated private void FillUI() { gridStatistic.DataSource = dtSta ...