JsonPath规则详解

JSON是一种轻量级的数据交换格式。一个序列化的对象数组,其中对象由键和键值组成,键值可以是对象、数组、数字、字符串或者 (false、null、true)中的一个。

对象的构成{ 键: 键值 }

{“hello”:123} 在这个对象中,键为字符串 “hello”,键值为数字 123;

{“hello”:null} 在这个对象中,键为字符串 “hello”,键值为 null。

数组的构成[ 数组 或 对象 ]

[ {“test1”:123} , {“test2”:234} ] 在这个数组中,包含了2个对象。

当然,数组里面也可以同样包含对象或数组,对象里面也可以包含对象或数组。

正常的接口都会给出返回的示例,我们可以在此处看到返回的数据结构:

对于返回的数组,我们需要从中获取我们需要的数据,就需要使用JSON Path规则进行索引。

对于在JSON Path中,$表示根元素,我们根据不同的类型,采用不同的索引方式

对于对象,我们可以给出键来索引值。

例如:

{“hello”:123}

我们为了获取键值123,可以根据键来索引;

$.hello 或者 $[‘hello’]

注意,如果键为中文,必须采用 $[‘键’] 的形式。

对于数组,我们必须按顺序来索引。

例如 [ {“test1”:123} , {“test2”:234} ] 我们需要索引数组里面第一个对象的值,则 $[0].test1;需要索引数组里面的第二个对象的值, $[1].test2。[0]表示索引数组里面的第一个对象或数组或值,[1]表示索引数组里面的第二个对象或数组或值,以此类推…

下面我们尝试一下复杂的索引规则

{
  "address"    : "浙江省杭州市余杭区文一西路969号",
  "config_str" : "{\\\"side\\\":\\\"face\\\"}",   
  "face_rect":{      
    "angle": -90, 
    "center":{     
      "x" : 952,
      "y" : 325.5
    },
    "size":{    
      "height":181.99,
      "width":164.99
    }
  }, 
  "card_region":[ 
     {"x":165,"y":657},
     {"x":534,"y":658},
     {"x":535,"y":31},
     {"x":165,"y":30}
   ],
  "face_rect_vertices":[  
      {  
         "x":1024.6600341796875,
         "y":336.629638671875
      },
      {  
         "x":906.66107177734375,
         "y":336.14801025390625
      },
      {  
         "x":907.1590576171875,
         "y":214.1490478515625
      },
      {  
         "x":1025.157958984375,
         "y":214.63067626953125
      }
    ],
  "name" : "张三",             
  "nationality": "汉",          
  "num" : "1234567890",           
  "sex" : "男",                 
  "birth" : "20000101",           
  "success" : true            
}

获取 address: $.address 或 $[‘address’]

获取 card_region 里面第一个里面x的值:$.card_region[0].x 或 $.card_region[0]['x']

具体可以使用 https://jsonpath.com 进行测试。

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验