Extracting a subset of attributes with JSONPath

Spaffo picture Spaffo · Dec 12, 2014 · Viewed 23k times · Source

I have this JSON code:

{
    "A": {
        "AB": [{
            "ABA": "0",
            "ABB": "1",
            "ABC": "2"
        }]
    }
}

I need to use a JSONPath expression that returns that JSON with only ABA and ABC attributes. Something like:

{
    "A": {
        "AB": [{
            "ABA": "0",
            "ABC": "2"
        }]
    }
}

So far I manage to extract either one or all attributes. For example

$.A.AB[*]

or

$.A.AB[*].ABA

Is there a way to extract only two?

Thanks

Answer

kalle picture kalle · Jan 12, 2015

This will work using the Jayway implementation (Java):

$.A.AB[*]['ABB', 'ABA']

and the result for your input would be:

[
   {
      "ABB" : "1",
      "ABA" : "0"
   }
]

You can Compare different providers here:

http://jsonpath.herokuapp.com/