将XML字符串存储为JSON属性的正确可靠方法是什么?

时间:2010-05-28 12:28:02

标签: xml json

我想存储一个字符串,它本身就是一个XML字符串,作为JSON对象的属性,这是什么?可靠正确方式?由于JSON不支持二进制数据,我是否应该先将XML数据先编码为BASE64,然后将其保存到JSON对象中?

我想要存储的数据示例:

{ 
"string1" : "<xml>...moderately complex XML...</xml>" 
} 

2 个答案:

答案 0 :(得分:3)

实际上base 64应该可行。但您可能想要标记该属性,以便明确。

{
    "Property" : {
        "Type" : "XML",
        "Encoding" : "Base64",
        "Value" : "PFhNTD48WE1MPjxYTUw+PC9YTUw+PC9YTUw+PC9YTUw+"
    }
}

答案 1 :(得分:0)

  

JSON不支持二进制数据?

如果您的意思是它没有bytes数据类型,那么谁在乎呢? JavaScript字符串可以包含所有可能的Unicode字符,包括控制字符:

"string1": "\u0000\u0001\u0002..."

(并非那些甚至在XML中都有效。)

所以你可以,如果你真的必须编码字节,只需将它们直接映射到相同序号的字符:

"xml": "<el>caf\u00C3\u00A9</el>"
// "café", encoded as a UTF-8 byte sequence read as ISO-8859-1

但是对于XML来说,你最好将它保存在Unicode中,并且像其他任何字符串一样只对JSON进行编码:

"xml": "<el>caf\u00E9</el>"
// or assuming your channel encoding is OK, simply
"xml": "<el>café</el>"