2016-05-13 10 views
7

data una lista JSON come questo:Come si sfugge al simbolo @ in jsonpath?

{  
"listRel:customFieldList": { 
      "platformCore:customField": [ 
       { 
       "@internalId": "801", 
       "scriptId": "custentity_admin_contact_cweb", 
       "@xsi:type": "platformCore:BooleanCustomFieldRef", 
       "platformCore:value": "false" 
       }, 
       { 
       "@internalId": "712", 
       "@scriptId": "custentity_bar_number", 
       "@xsi:type": "platformCore:StringCustomFieldRef", 
       "platformCore:value": "166493" 
       }, 
       { 
       "@internalId": "798", 
       "@scriptId": "custentity_contact_type", 
       "@xsi:type": "platformCore:SelectCustomFieldRef", 
       "platformCore:value": { 
        "@internalId": "1", 
        "@typeId": "148", 
        "platformCore:name": "Attorney" 
       } 
       } 
       ] 
} 
} 

Come posso selezionare il valore in "custentity_bar_number"? 166.493?

Questo ti porterà lì, ma solo se cancelli il simbolo @ davanti a @scriptId nel JSON.

$..['platformCore:customField'][?(@['scriptId'] == 'custentity_bar_number')] 

Quindi quello che serve è un modo per sfuggire il simbolo @ in JSON, e fare qualcosa di simile a questo lavoro:

$..['platformCore:customField'][?(@['@scriptId'] == 'custentity_bar_number')] 

Sto usando http://jsonpath.com/ per cercare di fare questo lavoro.

risposta

1

È evidentemente necessario utilizzare il codice esadecimale (penso che abbia qualcosa a che fare con il modo in cui l'espressione viene analizzata)

$..['platformCore:customField'][?(@['\x40scriptId'] == 'custentity_bar_number')] 
+0

Wow! ottimo lavoro! Non avevo idea che potessi inserire codici del genere, non nella documentazione semi-ufficiale http://goessner.net/articles/JsonPath/index.html#e2 – redwards510

Problemi correlati