【问题标题】:How to convert Map to Json in Scala如何在 Scala 中将 Map 转换为 Json
【发布时间】:2016-08-23 12:20:48
【问题描述】:

我的地图如下:

Map(
Columbus Herzog -> 
 Map(
 0 -> Map(source -> Las Cruces Crawford Arpt (LRU), amount -> 5000.0, points -> 500, date_time -> Sat Feb 13 02:18:14 IST 2016, class -> First, destination -> San Luis Arpt (IPI)), 
 1 -> Map(source -> Las Cruces Crawford Arpt (LRU), amount -> 5000.0, points -> 500, date_time -> Fri Jul 22 01:52:19 IST 2016, class -> First, destination -> San Luis Arpt (IPI)), 
 2 -> Map(source -> Las Cruces Crawford Arpt (LRU), amount -> 5000.0, points -> 500, date_time -> Wed Jan 06 06:24:50 IST 2016, class -> First, destination -> San Luis Arpt (IPI)), 
 3 -> Map(source -> Las Cruces Crawford Arpt (LRU), amount -> 5000.0, points -> 500, date_time -> Tue May 17 17:12:16 IST 2016, class -> First, destination -> San Luis Arpt (IPI))
 )
)

我想要如下 JSON 数组:

{"Columbus Herzog":
[{"source":"Las Cruces Crawford Arpt (LRU)","amount":"5000.0","points":"500","date_time":"Sat Feb 13 02:18:14 IST 2016","class":"First","destination":"San Luis Arpt (IPI)"}],
[{"source":"Las Cruces Crawford Arpt (LRU)","amount":"5000.0","points":"500","date_time":"Fri Jul 22 01:52:19 IST 2016","class":"First","destination":"San Luis Arpt (IPI)"}],
[{"source":"Las Cruces Crawford Arpt (LRU)","amount":"5000.0","points":"500","date_time":"Wed Jan 06 06:24:50 IST 2016","class":"First","destination":"San Luis Arpt (IPI)"}],
[{"source":"Las Cruces Crawford Arpt (LRU)","amount":"5000.0","points":"500","date_time":"Tue May 17 17:12:16 IST 2016","class":"First","destination":"San Luis Arpt (IPI)"}]
}

请指教。

提前谢谢你。

【问题讨论】:

  • 这个thread 可能会帮助你更多地了解JSON

标签: json scala


【解决方案1】:

net.liftweb.json.DefaultFormats

import net.liftweb.json.JsonAST
import net.liftweb.json.JsonDSL._
import net.liftweb.json.Printer.{compact,pretty}

object LiftJsonWithCollections extends App {

    val json = List(1, 2, 3)
    println(compact(JsonAST.render(json)))

    val map = Map("1" -> "one", "2" -> "two")
    println(compact(JsonAST.render(map)))
}

和输出:

[1,2,3]
{"1":"one","2":"two"}

只需将Map的内容替换为拥有。

【讨论】:

  • 我已经尝试过,但“分解”会给出未找到的错误。
  • @ChetanNakum,这个例子使用lift-json外部库。只需确保将其添加到您的构建中即可。
  • 嗨,谢谢您的回复,但是当我尝试添加 maven 时,我收到类似“加载 JsonAST 时出错,Scala 签名 JsonAST 预期版本错误:5.0 发现:JsonAST 中的 4.1 .class" 我在 maven 下有用户:net.liftweblift-json2.0-M5
  • 我的地图如下所示: val map = Map("Jerrod Lindgren" -> Map(0 -> Map("source" -> "Clinton Municipal (CWI)", "amount" -> 3000.0, "points" -> 300, "date_time" -> "Fri Oct 16 11:06:03 IST 2015", "class" -> "Business", "destination" -> "Nanjing Arpt (NKG)")) )
  • @Chetan Nakum 您将拥有一个嵌套地图。怎么了?
猜你喜欢
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
相关资源
最近更新 更多