JsonPath 規則詳解

JSON是一種輕量級的資料交換格式。一個序列化的對象陣列,其中對象由鍵和鍵值組成,鍵值可以是對象、陣列、數字、字串或者 (false、null、true)中的一個。

對象的構成{ 鍵: 鍵值 }

{“hello”:123} 在這個對象中,鍵為字串 “hello”,鍵值為數字 123;

{“hello”:null} 在這個對象中,鍵為字串 “hello”,鍵值為 null。

陣列的構成[ 陣列 或 對象 ]

[ {“test1”:123} , {“test2”:234} ] 在這個陣列中,包含了2個對象。

當然,陣列裏面也可以同樣包含對象或陣列,對象裏面也可以包含對象或陣列。

正常的API都會給出返回的範例,我們可以在此處看到返回的資料結構:

對於返回的陣列,我們需要從中取得我們需要的資料,就需要使用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 進行測試。

這項資訊有幫助嗎?
需要更多協助嗎?聯繋技術支援。