Есть некоторые новости, основанные на Mozilla Foundation и sitepoint
Не используйте это значение (
blockquote>http-equiv=content-type
), поскольку оно является устаревшим. Предпочитают атрибутcharset
в элементе & lt;meta
>.
Не 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>
Еще одна возможность: Выбросьте за борт, , http://jettison.codehaus.org может представить Json через XML, анализирующий интерфейс (stax XMLStreamReader), который позволяет интеграцию с системами, которые только понимают XML. Это требует использования конвенции (badgerfish, или независимо от того, что другой назвали).
XStream, например, использование Выбрасывает за борт (или по крайней мере конвенция Badgerfish) для разрешения использования JSON.
, Но сам вопрос неопределенный бит: в то время как можно всегда преобразовывать от одного до othe (это - очень тривиальная вещь сделать действительно), XML и JSON не эквивалентны: нет никакого непосредственного универсального отображения без потерь. Следовательно, вопрос: что Вы планируете сделать с результатами, как заканчивается xml, который будет использоваться?
Можно хотеть попробовать XStream. Смотрите на http://x-stream.github.io/faq.html#JSON .
Можно использовать json-lib , он обеспечивает двунаправленное преобразование.
http://json-lib.sourceforge.net/