私はscalaで作業していますが、Javaソリューションは受け入れられます。
私は org.json を使用して json api を xml に変換しているので、奇妙なクライアント (VB4 ベースで変更を望まない) が xml で自分の api を使用できます。
単純な json から xml への変換は正常に機能します。問題は、それを往復できるようにする必要がある可能性が高く、org.json が適切に前後に変換されないように見えることです。
例えば
{
"a" : ""
}
に変換:
<a></a>
これを元に戻すと、次のようになります。
{
"a" : { }
}
したがって、org.json は空の文字列を空のタグに変換し、空のタグを空のオブジェクトに変換します。私のコードは以下の通りです:
object XmlSerializer {
def toXml(json:String) = {
val jsonObj = new JSONObject(json)
val xmlString = XML.toString(jsonObj)
xmlString
}
def fromXml(xml:String) = {
val jsonObj = XML.toJSONObject(xml)
val jsonString = jsonObj.toString
jsonString
}
}
何か足りないのでしょうか、それとも org.json.XML 変換が十分に賢くないのでしょうか? 正しい型への変換を保証するために型属性を使用できたようです。