Преобразование неправильно отформатированной строки JSON в объект - PullRequest
0 голосов
/ 22 апреля 2019

У меня нижеприведенный JSON, входящий как строковый ввод в мой код. Так как строка не имеет одинакового формата, преодоление escape-символов и группировка кавычек для чтения строки и преобразования ее в Java Object и подобъекты столкнулись с проблемами

{"payload":{"details":"{\"source\":\"incor\",\"type\":\"build\",\"created\":\"1553855543108\",\"organization\":null,\"project\":null,\"application\":null,\"_content_id\":null,\"attributes\":null,\"requestHeaders\":{}}","content":"{\"project\":{\"name\":\"spinner\",\"lastBuild\":{\"building\":false,\"number\":0}},\"master\":\"IncorHealthCheck\"}","rawContent":null,"eventId":"bb357b79-069b-426d-8d21-8d04b06f5009"},"eventName":"city_spinner_events"}

До сих пор я пытался использовать GSON, Джексон, чтобы попытаться прочитать строку и преобразовать в объект и подобъекты. Тем не менее, я смог объективировать только объект верхнего уровня. Я сталкиваюсь с проблемами, в то время как мне нужно создавать подобъекты из-за escape-символов и неправильного прочтения группировки цитат парсером. Выдает ошибки и исключения.

Ожидаемый JSON, как показано ниже, может быть преобразован в объект:

{"payload":{"details":{"source":"incor","type":"build","created":"1553855543108","organization":null,"project":null,"application":null,"_content_id":null,"attributes":null,"requestHeaders":{}},"content":{"project":{"name":"spinner","lastBuild":{"building":false,"number":0}},"master":"IncorHealthCheck"},"rawContent":null,"eventId":"bb357b79-069b-426d-8d21-8d04b06f5009"},"eventName":"city_spinner_events"}

1 Ответ

0 голосов
/ 22 апреля 2019

Попробуйте unescapeJava из org.apache.commons.text.StringEscapeUtils,

StringEscapeUtils.unescapeJava(str);
...