我有JSON,如下所示。我試圖使用JSONPath來獲取SKU爲「8A-OK9F-9LI8」和Component.Type =='Principal'的__ content __值。現在,我正在玩this JSON路徑表達式測試器。解決數組問題與使用JSONPath的非數組JSON問題
這JSONPath表達抓住所有的我所需要的組件的信息:
$.Order..Fulfillment[?(@.SKU=='8A-OK9F-9LI8')]..Component
但是濾波還如$.Order..Fulfillment[?(@.SKU=='8A-OK9F-9LI8')]..Component[?(@.Type=='Principal')]
抓鬥只有一個(I相信陣列的一個)我需要兩個組件元件。我懷疑這是因爲一個是一個數組,一個是單個JSON元素。是否有可能通過一個命令來獲取這個數據,還是必須組合幾個命令(一個用於數組,另一個用於單個JSON元素)?如果是這樣,我怎樣才能獲取我目前沒有獲得的其他組件信息:
$.Order..Fulfillment[?(@.SKU=='8A-OK9F-9LI8')]..Component[?(@.Type=='Principal')]
?
同樣,我的目標是抓住「__ content__」值並按特定SKU進行過濾,並在其中Component.Type =='Principal'。喜歡的東西:
$.Order..Fulfillment[?(@.SKU=='8A-OK9F-9LI8')]..Component[?(@.Type=='Principal')]..Amount..__content__
我期待找回["8.49", "8.49"]
這裏是我與測試JSON:
{
"SettlementData": {},
"Order": [
{
"OrderID": "XXX",
"Fulfillment": {
"Item": {
"SKU": "8A-OK9F-9LI8",
"Quantity": "1",
"ItemPrice": {
"Component": [
{
"Type": "Principal",
"Amount": {
"__content__": "8.49",
"currency": "USD"
}
},
{
"Type": "Tax",
"Amount": {
"__content__": "0.74",
"currency": "USD"
}
}
]
}
}
}
},
{
"OrderID": "XXX",
"Fulfillment": {
"Item": {
"SKU": "8A-OK9F-9LI8",
"Quantity": "1",
"ItemPrice": {
"Component": {
"Type": "Principal",
"Amount": {
"__content__": "8.49",
"currency": "USD"
}
}
}
}
}
}
]
}
這似乎是我使用的庫中的一個限制。我已經將每個散列元素轉換爲一個數組來克服這個問題。感謝您的投票,但沒有提供原因。 – Trinculo