I am trying to extract google.sent_time from the following JSON , how do I get that value?
It seems like it's a raw payload, and not straightforward JSON, so wondering if there is a way to extract it?
{
"notificationID": "677291f5-a784-43df-af2e-0067e9c",
"title": "test 223",
"body": "payload",
"lockScreenVisibility": 1,
"groupMessage": "",
"fromProjectNumber": "819539062812",
"priority": 5,
"rawPayload": "{\"google.delivered_priority\":\"normal\",\"google.sent_time\":1591849563191,\"google.ttl\":259200,\"google.original_priority\":\"normal\",\"custom\":\"{\\\"i\\\":\\\"677291f5-a784-43df-af2e-0363a4067e9c\\\"}\",\"oth_chnl\":\"\",\"pri\":\"5\",\"vis\":\"1\",\"from\":\"819539062812\",\"alert\":\"payload\",\"title\":\"test 223\",\"grp_msg\":\"\",\"google.message_id\":\"0:1591849563205759%409ebbcaf9fd7ecd\",\"google.c.sender.id\":\"819539062812\",\"notificationId\":-1451117355}"
}
It is JSON, with some characters escaped so it can fit in to a string type field in your main JSON.
You can extract the string value of "rawPayload" field an feed that to whatever JSON parser you are using, or you can use a regex directly on the string to get just the value:
Here is a regex example:
Pattern p = Pattern.compile("google\\.sent_time.*:(\\d+)");
Matcher m = p.matcher(yourInputString);
m.find();
String sentTime = m.group(1);