小编Urs*_*ter的帖子

使用circe递归将JSON树转换为其他格式(XML,CSV等)

为了使用circe 将JSON节点转换为JSON 以外的其他格式(例如XML,CSV等),我想出了一个解决方案,其中我必须访问circe的内部数据结构。

这是我的工作示例,该示例将JSON转换为XML字符串(虽然不完美,但您可以理解):

package io.circe

import io.circe.Json.{JArray, JBoolean, JNull, JNumber, JObject, JString}
import io.circe.parser.parse

object Sample extends App {

  def transformToXMLString(js: Json): String = js match {
    case JNull => ""
    case JBoolean(b) => b.toString
    case JNumber(n) => n.toString
    case JString(s) => s.toString
    case JArray(a) => a.map(transformToXMLString(_)).mkString("")
    case JObject(o) => o.toMap.map {
      case (k, v) => s"<${k}>${transformToXMLString(v)}</${k}>"
    }.mkString("")
  }

  val json =
    """{
      | "root": {
      |  "sampleboolean": true,
      |  "sampleobj": {
      |    "anInt": 1,
      |    "aString": …
Run Code Online (Sandbox Code Playgroud)

xml json scala scala-cats circe

3
推荐指数
1
解决办法
335
查看次数

标签 统计

circe ×1

json ×1

scala ×1

scala-cats ×1

xml ×1