Преобразовать XML в формат JSON - PullRequest
0 голосов
/ 05 октября 2010

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

<class>
    <num>2</num>
    <student>
        <name>example1@email.com</name>
        <age>5</age>
    </student>
    <student>
        <name>example2@email.com</name>
        <age>10</age>
    </student>
</class>

Обновление: извините всех, я не говорю об этом ясно

Я просто хочу в формате JSON вышеупомянутого файла XML.И это не делается ни одной программой.Ответ понравится

{
  "class"

...

}

Ответы [ 4 ]

3 голосов
/ 05 октября 2010

Если вы используете Java, я бы сказал, пойти с json-lib .

InputStream in = ConvertXMLtoJSON.class.getResourceAsStream("file.xml");
String xml = IOUtils.toString(in);

XMLSerializer xmlSerializer = new XMLSerializer(); 
JSON json = xmlSerializer.read(xml);  
System.out.println(json.toString(2));
2 голосов
/ 05 октября 2010

Если вы используете PHP, вы можете взглянуть на встроенные функции JSON:

http://www.php.net/json

В частности, json_encode превратит массив PHP в строку JSON, поэтому, если вы можете сначала преобразовать свой XML в массив (xml_parse_into_struct может делать то, что вы хотите, также есть множество сторонних библиотек), вы должны иметь возможность перейти от XML к JSON в два этапа.

2 голосов
/ 05 октября 2010

Вы можете использовать таблицу стилей XSLT для преобразования XML практически во что угодно, включая JSON, посмотрите XML2JSON-XSLT в Google Code, который уже создан для стилей XSLT, который сделает это за вас. , Использование XSLT позволит вам обслуживать XML, который будет читаться браузером как JSON. Было бы разумно выполнить преобразование на стороне сервера, если вы обслуживаете JSON для приложений Ajax.

1 голос
/ 05 октября 2010

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

Точное представление:

{num:2, student:{name:"example1@email.com", age:5}, student:{name:"example2@email.com", age:10}}

Но я думаю, что вы должны определить члена как массив Student.Что приведет к:

{num:2, students:[{name:"example1@email.com", age:5}, {name:"example2@email.com", age:10}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...