Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created 06-19-2017 01:57 PM
i have the following son structure and want to replace the special character string "[{" and "]}" with "{" and "}" :
{"result": {"step": 1800, "start_time": 1491174000, "end_time": 1491260400, "curves": [{"color": "#a05830", "rrddata": [0.603695, 1.06903, 0.94504, 0.68786, 31.3228, 0.316447, 0.808407, 0.247655, 0.174552, 0.123072, 0.62, 0.0689, 0.30758, 0.0869783, 0.14478, 0.305993, 0.808873, 0.193055, 0.113133, 0.46116, 8.047, 1.88388, 2.62721, 0.770247, 8.06144, 2.25591, 22.3061, 57.5539, 0.270233, 1.50602, 0.819887, 5.90425, 0.43361, 0.526907, 2.46678, 0.759873, 0.451133, 0.25843, 0.224033, 0.661373, 1.1279, 0.348587, 0.277142, 0.06647, 0.16693, 0.06225, 0.0588483, 0.08057], "line_type": "area", "title": "Disk utilization"}]}, "result_code": 0}
Created on 06-19-2017 07:57 PM - edited 08-17-2019 07:15 PM
The following configuration of ReplaceText should work for you:
where the Search Value is the following:
[\[\]](\{|\})This matches [{ or ]} (and also [} and ]{ which shouldn't show up if your input is valid JSON) and replaces it with whichever curly brace it found. Note that this is a fairly specific solution, where the array is the last element of an object (i.e. the end pattern is not the end-of-object followed by end-of-array, rather the reverse).
A more forgiving solution (for your input JSON) might be to use the following Chain spec in a JoltTransformJSON processor:
[
{
"operation": "shift",
"spec": {
"result": {
"curves": {
"*": {
"@": "result.curves"
}
},
"*": "result.&"
},
"*": "&"
}
}
]This "hoists" the object in the 1-element array up one level, achieving the same result as the ReplaceText pattern above.
Created on 06-19-2017 07:57 PM - edited 08-17-2019 07:15 PM
The following configuration of ReplaceText should work for you:
where the Search Value is the following:
[\[\]](\{|\})This matches [{ or ]} (and also [} and ]{ which shouldn't show up if your input is valid JSON) and replaces it with whichever curly brace it found. Note that this is a fairly specific solution, where the array is the last element of an object (i.e. the end pattern is not the end-of-object followed by end-of-array, rather the reverse).
A more forgiving solution (for your input JSON) might be to use the following Chain spec in a JoltTransformJSON processor:
[
{
"operation": "shift",
"spec": {
"result": {
"curves": {
"*": {
"@": "result.curves"
}
},
"*": "result.&"
},
"*": "&"
}
}
]This "hoists" the object in the 1-element array up one level, achieving the same result as the ReplaceText pattern above.
Created 03-02-2021 08:55 AM
How to perform the same for the very first occurrence of [ and last occurrence of ].
Created 06-20-2017 12:24 PM
Thanks Matt!
Works perfekt ...