I am trying to parse this json using spath
{
"Request":{
"Uri":"/api/...",
"requestHeaders":[
{
"Key":"X-Real-IP",
"Value":[
"213.205.240.26, 55.145.164.26"
]
},
{
"Key":"X-Forwarded-For",
"Value":[
"111.111.240.26"
]
},
"ContentHeaders":[
{
"Key":"Content-Length",
"Value":[
"0"
]
}
],
"Body":null
},
"Response":{ },
"TimeTakenMs":119
}
I need to extract the first value for X-Real-IP. Any help is appreciated.
Looking at your data again: the difficulty is that X-Real-IP is not an actual json key that you can target with spath. It is the value of a field called Key.
You can extract this, but not with just using spath.
In this particular case a simple regex might be easier:
...
| rex "\"Key\":\"X-Real-IP\",\s*\"Value\":\[\s*\"(?<X_Real_IP>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
Looking at your data again: the difficulty is that X-Real-IP is not an actual json key that you can target with spath. It is the value of a field called Key.
You can extract this, but not with just using spath.
In this particular case a simple regex might be easier:
...
| rex "\"Key\":\"X-Real-IP\",\s*\"Value\":\[\s*\"(?<X_Real_IP>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
What do you have so far and what exactly do you need help with?
I tried to create a span path to the correct Key (X-Real-IP) but it didn't work, my experience with json paths is not great