Существуют ли строгие правила для преобразования JSON в XML и обратно? - PullRequest
6 голосов
/ 14 декабря 2011

Существуют ли строгие правила для преобразования между JSON и XML?

Программа, над которой я работаю, должна иметь возможность выводить результаты в обоих форматах, но среди всех возможных утилит преобразования, библиотек и т. Д. Я не смогпонять, есть ли какой-либо стандарт (возможно, «де-факто») для этого преобразования.

Общие проблемы, как я вижу, таковы:

  • преобразование из одного форматадругому, а затем обратно должен дать результат, идентичный исходному;

  • JSON имеют массивы - простое вложение похожих дочерних элементов в XML не подходит, так как некоторые инструменты обработки XML не сохранятпорядок;

  • У XML есть атрибуты - их представление в качестве дочерних элементов изменит исходный XML при обратном преобразовании.

Могу ли я найти любую документациюпо этому вопросу - или я могу использовать любой подходящий конвертер из-за отсутствия такого стандарта?

Заранее спасибо за ссылки, советы, руководства.

Ответы [ 3 ]

1 голос
/ 14 декабря 2011

Нет ... Строгого правила пока нет.

Как вы подразумеваете ... Хотя JSON можно преобразовать в XML, преобразование не может быть надежным, поскольку списки тегов XML по определению не связаны с какой-либо конкретной структурой данных, где структуры данных JSON (карты и списки) ). Таким образом ... Файлы JSON, если они конвертированы в XML, не могут быть без потерь конвертированы обратно в JSON (если, конечно, вы не внедрили некоторую нестандартную мета-информацию в объекты JSON, которые используются для декодирования XML).

0 голосов
/ 14 декабря 2011

Да, это возможно. Я думаю, что все ваши проблемы могут быть обработаны, если вы определили, как они должны быть обработаны. Я не знаю стандартного способа сделать это.

Я думаю, что это очень говорит о том, как вам нужно это сделать http://jsontoxml.utilities -online.info /

По сути, вы бы «закодировали» атрибуты и текстовые данные таким образом, чтобы обозначить, что это за данные, что такое атрибут и т. Д. Довольно интересно, и я думаю, что игра с этим инструментом даст вам некоторые идеи для создания набора правил, который будет работать для вас спецификации.

Самое большое, если вы пойдете дальше, это документировать, как работает обработка и что ожидается.

0 голосов
/ 14 декабря 2011

Лично многое из этого будет зависеть от ваших особенностей реализации.Но, в конце концов, реальный ключ должен заключаться в реальных отношениях, которые у вас есть ...

  • Object -> JSON
  • JSON -> Object
  • Object-> XML
  • XML -> Объект

Поскольку на самом деле делать что-либо, пытающееся выполнить произвольное преобразование из XML -> JSON или наоборот, было бы очень трудно управлять / обрабатыватькак вы обрисовываете.Но если у вас есть общая объектная модель посередине, у вас все будет в порядке.

Поэтому, пока ваши методы сериализации и десериализации работают для соответствующих типов объектов, у реальных процессов не должно быть проблем.

...