2017-04-20 73 views
0

我有一個字符串:Scala,PlayFramework - 如何避免轉換爲Json時自動轉義字符?

val x = """{foo:"value1", bar:"value2"}""" 

,我想將其轉換成JsString。現在

val converted = JsString(x) 

,如果我打印converted,下面的結果打印:

"{foo:\"value1\", bar:\"value2\"}" 

不過,我不希望添加字符串中的\做。有沒有其他方式避免這種自動轉義而不使用string.replace?

回答

1

嘗試

println(JsString("""{foo:"value1", bar:"value2"}""").value) 
1
"{foo:"value1", bar:"value2"}" 

不是有效的JSON,這就是爲什麼引號是換用JsString。事實上,如果內部引號沒有被轉義,JSON解析器如何解釋這一點?

如果你想要一個帶有JSON對象的(JVM)String,你已經擁有它了。如果你想要一個JSON字符串,代表一個JSON對象,你必須有轉義字符。

如果你想JSON對象,你可以隨時使用

val obj: JsValue = Json.parse("""{foo:"value1", bar:"value2"}""") 
相關問題