我在 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 转换不够聪明?似乎可以使用类型属性来保证转换回正确的类型。