08-28-2017 11:37 AM
Is there a way to easily show what key values do not match between two JSON objects? If I have two objects with the same keys, can I output just the keys and values that do not match between the two objects? I am looking for a way to do this without having to create an equality expression for each key.
08-28-2017 01:35 PM
Have you tried the Diff Snap?
08-29-2017 05:13 AM
I think the Diff snap is for comparing streams of documents and not specifically two documents or two objects in a document. I know I can easily tell if the two objects differ but I want to be able to easily tell what key values or fields differ within the two objects. If two key names are the same but their values are not then the key name and differing values would be in the output document. I’m not sure how to do that without a comparison expression for each key/field, which is tedious and not self-maintained if the keys/fields of the objects change.
08-29-2017 06:09 PM
Can you provide some sample data on what are we trying to achieve here.
08-30-2017 06:08 AM
I want to compare the prev_excptn.body object to the next_excptn.body object in the following example and create the output at the bottom showing the differences in the two.
[{
"dime_id": 10202,
"deleted_flag": false,
"start_dt": {
"_snaptype_localdatetime": "2017-05-09T19:31:33.000"
},
"prev_excptn": {
"body": {
"id": 44,
"eModel": {
"id": 104,
"eType": {
"id": 56
},
"name": "Thing"
},
"sN": "00000064",
"objectA": {
"eId": 32,
"mK": "werfewfe",
"aUserId": 36,
"aDateTime": {
"dateTime": "2017-05-10T13:49:22+0000",
"zone": "UTC"
}
}
},
"created": {
"dateTime": "2017-05-10T13:49:21+0000",
"zone": "UTC"
}
},
"next_excptn": {
"body": {
"id": 44,
"eModel": {
"id": 104,
"eType": {
"id": 9999999999
},
"name": "Thing"
},
"sN": "00000064"
},
"created": {
"dateTime": "2017-05-10T14:03:21+0000",
"zone": "UTC"
}
}
}]
The output would be something like this. I’m not set on this structure. I just want to only include the fields that didn’t match and their values. I used DNE on the next_excptn to show it Does Not Exist.
[{
"diff": {
"body": {
"eModel": {
"eType": {
"id": {
"prev_excptn": 56,
"next_excptn": 9999999999
}
}
},
"objectA": {
"prev_excptn": {
"eId": 32,
"mK": "werfewfe",
"aUserId": 36,
"aDateTime": {
"dateTime": "2017-05-10T13:49:22+0000",
"zone": "UTC"
}
},
"next_excptn": "DNE"
}
}
}
}]
I have spent a lot of time on this and am not yet done. It is tricky when fields don’t exist or they are many levels deep.