2017-05-05 34 views
0

我試圖寫jsonpath用於以下目的:Jsonpath爲對象的陣列嵌套數組

{ 
    "ParentArray": [ 
     { 
      "ChildArray": [ 
       { 
        "ChildArrayObjectKey": "ChildArrayObjectValue1" 
       }, 
       { 
        "ChildArrayObjectKey": "ChildArrayObjectValue2" 
       } 
      ]  
     }, 
     { 
      "ChildArray": [ 
       { 
        "ChildArrayObjectKey": "ChildArrayObjectValue3" 
       }, 
       { 
        "ChildArrayObjectKey": "ChildArrayObjectValue4" 
       } 
      ] 
     } 
    ] 
} 

這將提取從ParentArray的對象。我正在尋找一個在其ChildArray中包含值「ChildArrayObjectValue3」的對象。我認爲應該工作的解決方案是:

$.ParentArray[?(@.ChildArray[?(@.ChildArrayObjectKey === 'ChildArrayObjectValue3')])] 

但不幸的是,它不提供任何結果。我想提取物:

{ 
    "ChildArray": [ 
     { 
      "ChildArrayObjectKey": "ChildArrayObjectValue3" 
     }, 
     { 
      "ChildArrayObjectKey": "ChildArrayObjectValue4" 
     } 
    ] 
} 

回答

0

試試這個方法:?(@ ChildArrayObjectKey == 'ChildArrayObjectValue3')] $ .ParentArray .. *

+0

THX的解決方案,但不幸的是它沒有得到我需要的東西。你的表達式從ChildArray數組中獲取對象,但是我需要的不是從ParentArray中提取對象,這取決於它在ChildArray中的值。 –

+0

我用一個例子編輯了這個問題,我究竟期待什麼 –