Java 8 here though I have Jackson and Jettison on my classpath already (as dependencies).
I am being given the following string of JSON (as an example):
{
"widgets": {
"email": "[email protected]",
"maxSize": 50
},
"environments": {
"LOCAL": {
"maxSize": "40"
},
"DEV": {
"maxSize": "100"
}
},
"fruits": [
"apples",
"oranges"
]
}
At runtime the values of the fields will be different.
I am just trying to read the value of environments/DEV/maxSize from this string; what is the simplest code I can write to extract this value?
Ideally there might be some built in Java 8 support for this type of thing, but if note, I hopefully either Jackson or Jettison ship with this capability without having to add a new jar/dependency to my project. Worst case scenario would be just using some kind of regex to strip out the value I suppose...
Any ideas?
A simple option would be to use
JsonPath. Nested properties can be pulled using a path specifier like$.environments.DEV.maxSize:With Jackson, this can be done either with
JsonNode:Or if you have a class that represents the data, you can deserialize to that: