Ausgabe
Scala – Doppelte Anführungszeichen für „{}“-Klammern konnten beim Erstellen von Json nicht entfernt werden
import scala.util.Random
import math.Ordered.orderingToOrdered
import math.Ordering.Implicits.infixOrderingOps
import play.api.libs.json._
import play.api.libs.json.Writes
import play.api.libs.json.Json.JsValueWrapper
val data1 = (1 to 2)
.map {r => Json.toJson(Map(
"name" -> Json.toJson(s"Perftest${Random.alphanumeric.take(6).mkString}"),
"domainId"->Json.toJson("343RDFDGF4RGGFG"),
"value" ->Json.toJson("{}")))}
val data2 = Json.toJson(data1)
println(data2)
Ergebnis : [{“name”:”PerftestpXI1ID”,”domainId”:”343RDFDGF4RGGFG”, “value”:”{}” },{“name”:”PerftestHoZSQR”,”domainId”:”343RDFDGF4RGGFG”, “value” :”{}” }]
Erwartet : “Wert”: {}
[{“name”:”PerftestpXI1ID”,”domainId”:”343RDFDGF4RGGFG”, “value”:{} },{“name”:”PerftestHoZSQR”,”domainId”:”343RDFDGF4RGGFG”, “value”:{} } ]
Bitte schlagen Sie eine Lösung vor
Lösung
Sie geben ihm ein String
, damit es eine Zeichenfolge in JSON erstellt. Was Sie eigentlich wollen, ist ein leeres Wörterbuch, das Map
in Scala ist:
val data1 = (1 to 2)
.map {r => Json.toJson(Map(
"name" -> Json.toJson(s"Perftest${Random.alphanumeric.take(6).mkString}"),
"domainId"->Json.toJson("343RDFDGF4RGGFG"),
"value" ->Json.toJson(Map.empty[String, String])))}
Allgemeiner gesagt sollten Sie eine case class
für die Daten erstellen und eine benutzerdefinierte Writes
Implementierung für diese Klasse erstellen, damit Sie nicht Json.toJson
jeden Wert aufrufen müssen.
Beantwortet von – Tim
Antwort geprüft von – Timothy Miller (FixError Admin)