Реализация Java JSON к [закрытому] преобразованию XML

Есть некоторые новости, основанные на Mozilla Foundation и sitepoint

Не используйте это значение (http-equiv=content-type), поскольку оно является устаревшим. Предпочитают атрибут charset в элементе & lt; meta>.

blockquote>

20
задан dacracot 18 February 2009 в 00:03
поделиться

5 ответов

Не Java, но чистая реализация XSLT 2.0 :

Взглянули на f:json-document() от библиотека FXSL 2.x .

Используя эту функцию чрезвычайно легко включить JSon и использовать его так же, как... XML.

, Например, можно просто записать следующее выражение XPath:

f:json-document($vstrParam)/Students/*[sex = 'Female']

и добираются, все дети Students лет с sex = 'Female'

Вот полный пример:

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 xmlns:f="http://fxsl.sf.net/"
 exclude-result-prefixes="f xs"
 >
 <xsl:import href="../f/func-json-document.xsl"/>

 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:variable name="vstrParam" as="xs:string">
{

  "teacher":{
    "name":
      "Mr Borat",
    "age":
      "35",
    "Nationality":
      "Kazakhstan"
             },


  "Class":{
    "Semester":
      "Summer",
    "Room":
      null,
    "Subject":
      "Politics",
    "Notes":
      "We're happy, you happy?"
           },

  "Students":
    {
      "Smith":
        {"First Name":"Mary","sex":"Female"},
      "Brown":
        {"First Name":"John","sex":"Male"},
      "Jackson":
        {"First Name":"Jackie","sex":"Female"}
    }
    ,


  "Grades":

    {
      "Test":
      [
        {"grade":"A","points":68,"grade":"B","points":25,"grade":"C","points":15},

        {"grade":"C","points":2, "grade":"B","points":29, "grade":"A","points":55},

        {"grade":"C","points":2, "grade":"A","points":72, "grade":"A","points":65}
       ]
    }


}
 </xsl:variable>

 <xsl:template match="/">
    <xsl:sequence select=
     "f:json-document($vstrParam)/Students/*[sex = 'Female']"/>

 </xsl:template>
</xsl:stylesheet>

, Когда вышеупомянутое преобразование применяется на любой (проигнорированный) XML-документ, к корректному результату приводят :

<Smith>
   <First_Name>Mary</First_Name>
   <sex>Female</sex>
</Smith>
<Jackson>
   <First_Name>Jackie</First_Name>
   <sex>Female</sex>
</Jackson>
14
ответ дан 29 November 2019 в 23:23
поделиться

Еще одна возможность: Выбросьте за борт, , http://jettison.codehaus.org может представить Json через XML, анализирующий интерфейс (stax XMLStreamReader), который позволяет интеграцию с системами, которые только понимают XML. Это требует использования конвенции (badgerfish, или независимо от того, что другой назвали).

XStream, например, использование Выбрасывает за борт (или по крайней мере конвенция Badgerfish) для разрешения использования JSON.

, Но сам вопрос неопределенный бит: в то время как можно всегда преобразовывать от одного до othe (это - очень тривиальная вещь сделать действительно), XML и JSON не эквивалентны: нет никакого непосредственного универсального отображения без потерь. Следовательно, вопрос: что Вы планируете сделать с результатами, как заканчивается xml, который будет использоваться?

3
ответ дан 29 November 2019 в 23:23
поделиться

Можно хотеть попробовать XStream. Смотрите на http://x-stream.github.io/faq.html#JSON .

2
ответ дан 29 November 2019 в 23:23
поделиться

Можно использовать json-lib , он обеспечивает двунаправленное преобразование.

0
ответ дан 29 November 2019 в 23:23
поделиться

http://json-lib.sourceforge.net/

  • вышеупомянутые пункты об отсутствии полностью защищенного от дурака -one сопоставление допустимо, но у меня был хороший опыт преобразования xml в json с использованием указанной выше библиотеки.
2
ответ дан 29 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: