JsonPath规则详解
JSON是一种轻量级的数据交换格式。一个序列化的 对象 或 数组,其中对象由键和键值组成,键值可以是对象、数组、数字、字符串或者 (false、null、true)中的一个。
对象的构成 :{ 键: 键值 }
{“name”:“张三”} 在这个对象中,键为字符串 “hello”,键值为字符串 ‘"张三";
{“name”:null} 在这个对象中,键为字符串 “hello”,键值为 null。
数组的构成 :[ 数组 或 对象 ]
[ {“name”:"张三"} , {“age”:22} ] 在这个数组中,包含了2个对象。
当然,数组里面也可以同样包含对象或数组,对象里面也可以包含对象或数组。
正常的接口都会给出返回的示例,我们可以在此处看到返回的数据结构:
对于返回的数组,我们需要从中获取我们需要的数据,就需要使用JSON Path规则进行索引。
对于在JSON Path中,$表示根元素,我们根据不同的类型,采用不同的索引方式
。
对于对象,我们可以给出键来索引值。
例如:
{“name”:“张三”}
我们为了获取键值张三,可以根据键来索引;
$.name或者 $[‘name’]
对于数组,我们必须按顺序来索引。
例如 [ {“name”:"张三"} , {“age”:22} ] 我们需要索引数组里面第一个对象的值,则 $[0].name;需要索引数组里面的第二个对象的值, $[1].age。[0]表示索引数组里面的第一个对象或数组或值,[1]表示索引数组里面的第二个对象或数组或值,以此类推…
下面我们尝试一下复杂的索引规则
{
"data": {
"appId": "57b1af291369abc80d6b5e05",
"entryId": "5594e37b4981b77e021c0128",
"creator": {
"name": "191账号",
"_id": "5444e588b0cde5af638bd9"
},
"deleter": null,
"updater": null,
"createTime": "2022-09-01 15:02:39",
"updateTime": "2022-09-01 15:02:39",
"deleteTime": null,
"_id": "519b25f3f4d64ae147d8b7f2",
"_widget_1661565992794": "00413",
"单行文本": "AAA",
"多行文本": "多行文本的值",
"数字": 8,
"日期时间": null,
"地址": {
"province": "湖南省",
"city": "长沙市",
"district": "芙蓉区",
"detail": "韶山北路"
}
}
}
获取createTime:$.data.createTime
获取creator下name:$.data.creator.name