[FIXED] Scala – Doppelte Anführungszeichen für Key -> value „{}“-Klammern konnten beim Erstellen von Json nicht entfernt werden

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 Mapin 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 classfür die Daten erstellen und eine benutzerdefinierte WritesImplementierung für diese Klasse erstellen, damit Sie nicht Json.toJsonjeden Wert aufrufen müssen.


Beantwortet von –
Tim


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like