Hi,
I want to flatten json data to columns for my report purpose. I might not be explaining my requirement properly, here is what my data and result has to be.
Input:
{
"name" : "srini",
"value" {
"1": "val1",
"2" : "val2",
"3" : "val3"
}
}
Output:
name, name.key, name.value
------------------------------------------
srini 1 val1
srini 2 val2
srini 3 val3
I think your JSON is wrong and there's a colon missing after value.
In any case, see if the below helps:
| makeresults
| eval json = "
{
\"name\" : \"srini\",
\"value\": {
\"1\": \"val1\",
\"2\" : \"val2\",
\"3\" : \"val3\"
}
}
"
| spath input=json
| fields - json
| untable name key value
| rex field=key "(?<key>\d+)"
| rename key AS name.key, value AS name.value
Output (see picture below):
I think your JSON is wrong and there's a colon missing after value.
In any case, see if the below helps:
| makeresults
| eval json = "
{
\"name\" : \"srini\",
\"value\": {
\"1\": \"val1\",
\"2\" : \"val2\",
\"3\" : \"val3\"
}
}
"
| spath input=json
| fields - json
| untable name key value
| rex field=key "(?<key>\d+)"
| rename key AS name.key, value AS name.value
Output (see picture below):
I have so many key value pairs under "value" field. So it is not possible to specify each and every key of "value" field.