Как правильно и надежно хранить XML-строку как свойство JSON? - PullRequest
3 голосов
/ 28 мая 2010

Я хочу сохранить строку, которая сама по себе является строкой XML, в качестве свойства объекта JSON. Каков правильный способ и ? Должен ли я сначала кодировать данные XML в BASE64, прежде чем сохранять их в объект JSON, из-за того, что JSON не поддерживает двоичные данные?

Пример данных, которые я хочу сохранить:

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

Ответы [ 2 ]

3 голосов
/ 28 мая 2010

На самом деле база 64 должна работать. Но вы можете пометить свойство, чтобы оно было понятно.

{
    "Property" : {
        "Type" : "XML",
        "Encoding" : "Base64",
        "Value" : "PFhNTD48WE1MPjxYTUw+PC9YTUw+PC9YTUw+PC9YTUw+"
    }
}
0 голосов
/ 28 мая 2010

JSON не поддерживает двоичные данные?

Если вы имеете в виду, что у него нет bytes типа данных, ну кого это волнует? Строки JavaScript могут содержать все возможные символы Юникода, включая управляющие символы:

"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>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...