Создать другой JSON из XML - PullRequest
       12

Создать другой JSON из XML

1 голос
/ 03 апреля 2009

Я пытаюсь сгенерировать JSON из XML-файла, но не просто преобразовать. Я хочу выбирать биты и иметь немного другую структуру.

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

Кроме того, для тестирования я хотел бы иметь возможность проверить созданный json, просто проверить, является ли он действительным JSON

Ответы [ 4 ]

1 голос
/ 03 апреля 2009

Вы можете легко конвертировать XML в другие текстовые представления, используя XSLT , в частности, файл в файл, используя xsltproc или версию xalan для командной строки. .

XSLT иногда является неловким языком программирования, но если вы пойдете по этому пути, у меня есть две рекомендации для преобразований JSON. Установите вывод в текст с набором символов UTF-8:

<xsl:output method="text" encoding="UTF-8" />

и выполните JSLint для результата, чтобы отследить любые ошибки в вашем файле XSLT.

1 голос
/ 03 апреля 2009

Я бы, вероятно, использовал Linq to XML (XElement и друзья), чтобы сгенерировать новый объект, а затем передать этот объект сериализатору Json.

1 голос
/ 03 апреля 2009

Загрузите XML в набор классов (используйте XMLSerializer), затем реализуйте методы генератора JSON для этих классов. Разные методы, разные JSON.

0 голосов
/ 09 апреля 2009

Другие ответы выглядят хорошо: я думаю, что я также связал бы исходный формат с объектами, а затем сериализовал бы как другие форматы. И любые преобразования будут сделаны для объектов, а не с использованием представления формата данных. При использовании правильного синтаксического анализатора (для ввода) и генераторов / сериализаторов (для вывода) вам не нужно беспокоиться о корректности (в результате синтаксически правильные xml или json). А для валидности бизнес-логики вы можете (и должны) делать это, используя объекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...