В моем приложении grails я вызываю стороннее REST api, которое возвращает JSON, в котором у меня может быть HTML-контент в качестве значения свойства. Например, что-то вроде этого:JSON разбор в Grails
{
"presentationData": {
"id": "123-45",
"placeholders": [
{
"transition": "fade",
"items": [
{
"name": "Text Item",
"objectData": "<font face=\\"Palatino Linotype, Book Antiqua, Palatino, serif\\" size=\\"7\\">TEXT TEXT TEXT</font>",
"timeDefined": "false"
}
]
}
]
}
}
Я не могу разобрать этот JSON в Граалей: получение исключения по адресу: "objectData": "<font face=\\"Palatino Linotype, Book Antiqua, Palatino, serif\\" size=\\"7\\">TEXT TEXT TEXT</font>",
из-за \\
символов в значении.
Я попытался ниже код:
JSONElement scriptJson=JSON.parse(resp)
и даже с JsonSlurper:
JsonSlurper slurper=new JsonSlurper()
def scriptJson=slurper.parseText(resp)
Оба терпят неудачу на то же значение.
Я попытался заменить \\
с \
перед разбором, но не мог заставить его работать:
resp=resp.replaceAll(/\\+/,/\/)
Получение ошибки компиляции, где, как будто я пытаюсь заменить любой другой символ, #
, otherthan /
его получении заменены:
resp=resp.replaceAll(/\\+/,/#/)
давая выход как:
<font face=#"Palatino Linotype, Book Antiqua, Palatino, serif#" size=#"7#">TEXT TEXT TEXT</font>
Поэтому мне нужно решение для любого:
разборе этот недопустимый JSON или заменяющий \\
с \
в заводной.
Я борюсь за это в течение последних двух дней. Пожалуйста, помогите мне.
Try resp = resp.replaceAll (/ \\ + /,/'/) –
@BZ, он заменяется одиночной цитатой'''. Но я хочу, чтобы меня заменили одной обратной косой чертой, '\'. Думаю, я тоже сказал об этом в моем вопросе. – kaluva