库将xml转换为JSON,反之亦然
我需要将一个xml格式的文档转换为JSON,反之亦然 我相信这是一个常见的需求,也许还有一个库可以做到这一点 知道吗?退房。这是一个很好的库,很容易进入。不是C#,而是一个纯XSLT 2.0实现,它将JSON对象转换为XML文档: 请从下面的列表中查看 使用此函数非常容易合并JSon并将其用作。。。XML 例如,可以只编写以下XPath表达式:库将xml转换为JSON,反之亦然,xml,json,xslt,Xml,Json,Xslt,我需要将一个xml格式的文档转换为JSON,反之亦然 我相信这是一个常见的需求,也许还有一个库可以做到这一点 知道吗?退房。这是一个很好的库,很容易进入。不是C#,而是一个纯XSLT 2.0实现,它将JSON对象转换为XML文档: 请从下面的列表中查看 使用此函数非常容易合并JSon并将其用作。。。XML 例如,可以只编写以下XPath表达式: f:json-document($vstrParam)/Students/*[sex = 'Female'] 和让学生的所有孩子性别=“女性” 以下是
f:json-document($vstrParam)/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>
{
“老师”:{
“姓名”:
“波拉特先生”,
“年龄”:
"35",
“国籍”:
“哈萨克斯坦”
},
“类”:{
“学期”:
“夏天”,
“房间”:
无效的
“主题”:
“政治”,
“说明”:
“我们高兴,你高兴吗?”
},
“学生”:
{
“史密斯”:
{“名字”:“玛丽”,“性别”:“女性”},
“棕色”:
{“名字”:“约翰”,“性别”:“男性”},
“杰克逊”:
{“名字”:“杰基”,“性别”:“女性”}
}
,
“职系”:
{
“测试”:
[
{“等级”:“A”,“分数”:68,“等级”:“B”,“分数”:25,“等级”:“C”,“分数”:15},
{“等级”:“C”,“分数”:2,“等级”:“B”,“分数”:29,“等级”:“A”,“分数”:55},
{“等级”:“C”,“分数”:2,“等级”:“A”,“分数”:72,“等级”:“A”,“分数”:65}
]
}
}
将上述转换应用于任何XML文档(忽略)时,将生成正确的结果:
<Smith>
<First_Name>Mary</First_Name>
<sex>Female</sex>
</Smith>
<Jackson>
<First_Name>Jackie</First_Name>
<sex>Female</sex>
</Jackson>
玛丽
女性
杰基
女性
我不确定如何从json转换为xml,但我们使用这个xml转换为json的xsl模板在基于xml的out CMS中发挥了巨大的作用,它非常方便在ajax应用程序中重用现有的xml结构
好问题(+1)。有关直接从XSLT访问JSON到XML的可用XSLT解决方案,请参见我的答案。@nabo:如果它是用C#编写的,这有关系吗?如果它是用VB.NET编写的,但你可以从C#或任何其他.NET语言调用它会怎么样?@John Saunders-没错,我会去掉C#标签。它可以是任何语言,因为我可以导入一个dll在C#中使用。@nabo:我已经编辑删除了“C#”。这只是一个“提醒”,所以你知道最好不要这样做。