2016-11-21 222 views
0

我想從一個列表中構建一個JSON對象,其中鍵是「products」,值是List [Product],其中Product是一個case類。但是我我得到錯誤,說「類型不匹配;發現:(String,List [com.mycompnay.ws.client.Product])required:net.liftweb.json.JObject(展開爲)net.liftweb.json.JsonAST.JObject 」。轉換爲net.liftweb.json.JsonAST.JObject提升斯卡拉

我迄今所做的是如下:

val resultJson:JObject = "products" -> resultList 
     println(compact(render(resultJson))) 

回答

1

您正在尋找decomposedoc)。請參閱this answer

我測試下面的代碼,它工作得很好:

import net.liftweb.json._ 
import net.liftweb.json.JsonDSL._ 
import net.liftweb.json.Extraction._ 

implicit val formats = net.liftweb.json.DefaultFormats 

case class Product(foo: String) 

val resultList: List[Product] = List(Product("bar"), Product("baz")) 
val resultJson: JObject = ("products" -> decompose(resultList)) 
println(compact(render(resultJson))) 

結果:

{"products":[{"foo":"bar"},{"foo":"baz"}]} 
+0

是的,完美您的回覆helps.Thanks。 – Sakalya

+0

@Sakalya我很高興能幫上忙。如果在一段時間後沒有更好的答案,請考慮接受這個答案。謝謝 :) –