Недопустимый символ при преобразовании из JSON в XML с использованием jsonlib - PullRequest
1 голос
/ 28 октября 2011

Я пытаюсь преобразовать строку JSON в XML, используя jsonlib в Java.

    JSONObject json = JSONObject.fromObject(jsonString); 
    XMLSerializer serializer = new XMLSerializer();
    String xml = serializer.write( json );  
    System.out.println(xml);

Я получаю ошибку

    nu.xom.IllegalNameException: 0x24 is not a legal NCName character

Проблема в том, что в моем JSON есть некоторые свойства, которые являются недопустимыми символами XML. например. У меня есть свойство с именем "$ t". XMLSerializer выдает исключение при попытке создать тег XML с этим именем, поскольку $ не допускается в именах тегов XML. Есть ли способ, которым я могу переопределить эту проверку правильности XML, выполненную сериализатором?

Ответы [ 3 ]

0 голосов
/ 28 октября 2011

Я взглянул на спецификацию json-lib XMLSerializer, и, к моему удивлению, у него нет возможности сериализации объекта JSON, ключи которого не являются допустимыми именами XML. Если это так, то я думаю, вам нужно будет найти другую библиотеку.

0 голосов
/ 28 октября 2011

Вы можете зациклить json.keySet (рекурсивно, если необходимо) и заменить недействительные ключи действительными (используя remove и add).

0 голосов
/ 28 октября 2011

Сначала я бы предложил добавить язык, который вы используете (это Java, верно?).

Вы можете переопределить метод, где он проверяет имя вашего тега XML, чтобы ничего не делать.

...