Json解析案例-teachers数据集
背景:
通过平台执行接口时,接口往往返回的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数据集的更多相关文章
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...
- android json解析及简单例子+Android与服务器端数据交互+Android精彩案例【申明:来源于网络】
android json解析及简单例子+Android与服务器端数据交互+Android精彩案例[申明:来源于网络] android json解析及简单例子:http://www.open-open. ...
- Java基础-处理json字符串解析案例
Java基础-处理json字符串解析案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名开发人员,想必大家或多或少都有接触到XML文件,XML全称为“extensible ...
- JSON解析和XML解析对比
JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...
- IOS中Json解析的四种方法
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...
- JSON解析之——Android
JSON解析之——Android 一.google天气案例 之前xml学习中的google天气的例子非常形象,所以我们继续以google天气作为案例进行学习,下面是我从google官网下载下来的天气J ...
- Json应用案例之FastJson
这几天在网上找关于Json的一些案例,无意当中找到了一个我个人感觉比较好的就是阿里巴巴工程师写的FastJson. package com.jerehedu.fastjson; import java ...
- 接口测试入门(3)--使用httpClient进行登录用例操作/set-cookies验证/ List<NameValuePair>设置post参数/json解析
(最近学的都是很基础的接口测试,都是基于UI界面可见的接口,就是发请求,接收响应,分析返回的结果,校验,对共通模块进行封装,仅此而已,其实做自动化的思路基本都是如此,UI也是.) 现在开始用httpC ...
- Android JSON 解析关键代码
Android Json 解析其实还是蛮重要的知识点,为什么这么说呢,因为安卓通信大部分的协议都是使用 json 的方式传输,我知道以前大部分是使用的 xml ,但是时代在发展社会在进步,json 成 ...
随机推荐
- C++你不知道的事
class A { public: A() { cout<<"A's constructor"<<endl; } virtual ~A() { cout&l ...
- nrf51822 RAM不足分析
之前了解过STM32 的内存分配问题,对于蓝牙芯片51822的内存分配问题把项目中,遇到了.bss和.data部分超了的问题,这其实就是声明的变量和stask 及 heap的大小总和超出了单片机的RA ...
- python-3.x-生成器使用
生成器函数代码: 1 def gen(n): 2 i = 1; 3 sum = 0; 4 while i <= n: 5 ''' 6 方法体1 -- sum求和是1到9的和 7 yield su ...
- 【leetcode】121. Best Time to Buy and Sell Stock(股票问题)
You are given an array prices where prices[i] is the price of a given stock on the ith day. You want ...
- 2016广东工业大学新生杯决赛 A-pigofzhou的巧克力棒
题目:GDUTOJ | pigofzhou的巧克力棒 (gdutcode.cn) 之前看了大佬博客的题解,一直没懂(我太菜了),后来听了朋友@77的讲解,终于懂了. 和拆分出2的n次方不一样,这是一种 ...
- stlink 无法再keil中识别 按下复位键可以识别
最近遇到一个很是头痛的问题 本来板子是好好的,就是从公司带回的家里 然后再次用stlink烧写程序的时候就出现了问题: 但是查看电脑端,上面是有stlink的 也就是电脑是好的, 我立刻又试了一下家中 ...
- c学习 - 第七章:数组
7.3.6 字符串处理函数 (1).puts(字符数组) 字符串输出到终端 (2).gets(字符数组) 从标准输入获取字符串(包括空格) (3).strcat(字符数组1,字符数组2) 连接两个字符 ...
- RAC中常见的高级用法-bind方法
RAC操作思想: Hook(钩子)思想 RAC核心方法:bind bind方法 假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字" ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(2. 配置NTP服务chrony)
1. 简介 1.1. 这次使用另外一个轻量级的NTP服务,chrony.这是openstack推荐使用的ntp服务. 1.2. 官方网站:https://chrony.tuxfamily.org/ 2 ...
- 【力扣】337. 打家劫舍 III
在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个" ...