完全な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>"
}}
詳細の最初の文字で未終了の文字列エラーが発生します。どうすればそれを処理できますか?.
Java文字列をパラメータとして受け取り、jsonの上をJava文字列として渡す。
ありがとう
次のようにxml文字列をエンコードおよびデコードできます
{
"content": {
"name": "xyz",
"details": "PD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+CiA8bnMwOlJlcG9ydCB4bWxuczpuczA9XCJodHRwOi8vd3d3LmtoaXNrby5jb20vdHJpVHlwZXNcIj4KICA8U3RhY2tUcmFjZT5Kb2ItODAwNCBFcnJvciBpbiBbeHh4eHh4eHh4eF0KICAgICAgT3V0cHV0IGRhdGEgaW52YWxpZCYjeEQ7CiAgYXQgY29tLnh5ei50c3QuYShVbmtub3duIFNvdXJjZSkmI3hEOwogICAgICBjYXVzZWQgYnk6IGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiYjeEQ7CiAgIDwvU3RhY2tUcmFjZT4KICAgPE1zZz5PdXRwdXQgZGF0YSBpbnZhbGlkPC9Nc2c+CiAgPC9uczA6UmVwb3J0Pg==",
"encoding": "base64"
}
}
変更したばかり\"
〜'
および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>"
}}
Xmlから改行を削除したくないが、json Javaクラスを変更して、NL、CRの未終了文字列例外をスローしないようにしました。ExplosionPillに感謝します。