How to remove unwanted characters from a JSON file using a script

Viewed 23

I have a file which looks like this (report.json)

[
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":"133","ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":"133","ApplicationName":"My-App","BuildBreakReason":"BUG","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":"133","ApplicationName":"My-App","BuildBreakReason":"VULNERABILITY","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:28","JenkinsBuildNumber":"134","ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "spc@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:28","JenkinsBuildNumber":"134","ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "pramoth@gmail.com "},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:30","JenkinsBuildNumber":"135","ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "pramoth@gmail.com"}
]

I have to remove double quotation marks for JenkinsBuildNumber.

"JenkinsBuildNumber":"133" to "JenkinsBuildNumber":133

then expected output will be

[
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":133,"ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":133,"ApplicationName":"My-App","BuildBreakReason":"BUG","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:24","JenkinsBuildNumber":133,"ApplicationName":"My-App","BuildBreakReason":"VULNERABILITY","DefectAuthor": "james@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:28","JenkinsBuildNumber":134,"ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "spc@gmail.com"},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:28","JenkinsBuildNumber":134,"ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "pramoth@gmail.com "},
{"Squad":"JBC","TimeStamp":"2022-08-31-12:30","JenkinsBuildNumber":135,"ApplicationName":"My-App","BuildBreakReason":"CODE_SMELL","DefectAuthor": "pramoth@gmail.com"}
]

Can someone help me to figure out this? Thanks in advance!

1 Answers

Here is one way to do it with a sed script:

sed -E 's/("JenkinsBuildNumber":)"([^"]+)"/\1\2/' report.json

You might be better off using something that parses the data properly like a jq, or a general purpose scripting language (JavaScript, Python etc).

Related