首页 > 解决方案 > 如何在 Scala 中将 Json 转换为 XML?

问题描述

我正在尝试转换 JSON 值:

[
    {
        "msg": "Hiiiiii",
        "name": "Ruchirrrr"
    },
    {
        "msg": "Holaaa Amigo",
        "name": "Pablo"
    },
    {
        "msg": "Demo",
        "name": "RuchirD"
    }
]

在 Scala 中转换为 XML 格式。我正在从 MongoDB 获取上述 json 格式的数据,它是Greeting对象类型: Greeting.scala :

case class Greeting(msg:String,name:String)

我转换为 XML 的路线如下所示:

path("getXML"){
    val greetingSeqFuture: Future[Seq[Greeting]] = MongoDAL.fetchAllGreetings()
    val jsonMapper = new ObjectMapper
    val greet = jsonMapper.readValue(greetingSeqFuture,classOf[Greeting])
       }

fetchAllGreetings()方法以 JSON 的形式从我的 MongoDB 数据库返回数据,在这里我试图将其转换为 XML。我也收到readValue()方法的错误。

我已经"com.fasterxml.jackson.core" % "jackson-databind" % "2.4.0"在我的 built.sbt 文件中导入了这个依赖项。

在 Java 中有很多资源可以做同样的事情,但在 Scala 中它们对我不起作用。

标签: jsonxmlscalaakkaakka-http

解决方案


一种方法是运行 XSLT 3.0 转换:

<xsl:template name="xsl:initial-template">
  <greetings>
    <xsl:for-each select="parse-json($input)?*">
      <greeting msg="{?msg}" name="{?name}"/>
    </xsl:for-each>
  </greetings>
</xsl:template>

推荐阅读