Soweit ich verstand ich dachte, dass Sie Ihre benutzerdefinierte Implementierung für Json verwenden, das ist: Map[String, Any]
Hier ist also benutzerdefinierte Implementierung von Funktion, die für String Ihrer Karte
def show(json: Map[String, Any]) : String = {
def parse(elem: (String, Any)): String = elem match {
case (a: String, b: Map[String, _]) => "\"" + a + "\"" + ":" + show(b) + ""
case (a: String, b: Boolean) => "\"" + a + "\"" + ":" + b.toString
case (a: String, b: Int) => "\"" + a + "\"" + ":" + b.toString
case (a: String, b: Double) => "\"" + a + "\"" + ":" + b.toString
case (a: String, b: String) => "\"" + a + "\"" + ":\"" + b + "\""
}
val assocs = json.map {
case(key, value) => parse((key,value))
}
"{\n" + assocs.mkString(", \n")+ "}"
}
zurück solche Karte:
val mapJson = Map("root" ->
Map("field1" -> 1,
"field2" -> Map("field1" -> true,
"field2" -> 2.03),
"field3" -> "Test"))
es druckt:
String = {
"root":{
"field1":1,
"field2":{
"field1":true,
"field2":2.03},
"field3":"Test"}}
es hat eine, namens JSONObject, aber es ist begrenzt. Sie könnten Ihre eigenen rollen. http://albertech.blogspot.com/2017/02/convert-nested-map-and-list-data.html – jar