我想存储一个字符串,它本身就是一个XML字符串,作为JSON对象的属性,这是什么?可靠和正确方式?由于JSON不支持二进制数据,我是否应该先将XML数据先编码为BASE64,然后将其保存到JSON对象中?
我想要存储的数据示例:
{
"string1" : "<xml>...moderately complex XML...</xml>"
}
答案 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>"