Сохранение xml внутри объекта json
Мне нужно сохранить полный XML-документ как часть объекта json.
когда я получаю запрос и пытаюсь создать json-объект из строки json, как показано ниже -
{"content":{
"name" : "xyz",
"details":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<ns0:Report xmlns:ns0=\"http://www.khisko.com/triTypes\">
<StackTrace>Job-8004 Error in [xxxxxxxxxx]
Output data invalid
at com.xyz.tst.a(Unknown Source)
caused by: java.lang.NullPointerException
</StackTrace>
<Msg>Output data invalid</Msg>
</ns0:Report>"
}}
Я получаю Unterminated string error сначала char деталей.
как я могу справиться с этим.
Я использую конструктор org.json.JSONObject, который принимает строку java в качестве параметра и передаёт json как java-строку.
Спасибо
Ответы
Ответ 1
Просто я изменил \"
на '
и remove line breaks
, как @Explosion Pills, говорит
{"content":{
"name" : "xyz",
"details":"<?xml version='1.0' encoding='UTF-8'?>
<ns0:Report xmlns:ns0='http://www.khisko.com/triTypes'>
<StackTrace>Job-8004 Error in [xxxxxxxxxx]
Output data invalid
at com.xyz.tst.a(Unknown Source)
caused by: java.lang.NullPointerException
</StackTrace>
<Msg>Output data invalid</Msg>
</ns0:Report>"
}}
Ответ 2
Не нужно удалять разрывы строк из xml, но внесено изменение в json java class, чтобы не вызывать исключение исключенной строки для NL, CR. спасибо Взрывные таблетки.
Ответ 3
Вы можете кодировать и декодировать строку XML, как
{
"content": {
"name": "xyz",
"details": "PD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+CiA8bnMwOlJlcG9ydCB4bWxuczpuczA9XCJodHRwOi8vd3d3LmtoaXNrby5jb20vdHJpVHlwZXNcIj4KICA8U3RhY2tUcmFjZT5Kb2ItODAwNCBFcnJvciBpbiBbeHh4eHh4eHh4eF0KICAgICAgT3V0cHV0IGRhdGEgaW52YWxpZCYjeEQ7CiAgYXQgY29tLnh5ei50c3QuYShVbmtub3duIFNvdXJjZSkmI3hEOwogICAgICBjYXVzZWQgYnk6IGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiYjeEQ7CiAgIDwvU3RhY2tUcmFjZT4KICAgPE1zZz5PdXRwdXQgZGF0YSBpbnZhbGlkPC9Nc2c+CiAgPC9uczA6UmVwb3J0Pg==",
"encoding": "base64"
}
}