這可能是一件容易的事情,而我的困難很可能是由於我對Scala的新穎性(它已經很快成爲我最喜歡的語言)所致。從Scala中使用lift-json解析JSON呈現JSON
基本上我有一些JSON,看起來像這樣:
{
"to" : "Peter",
"from" : "Dave",
"bundle" : [
{"data": [1,2,3,4,5]},
{"data": [2,3,4,5,6]}
]
}
現在,我已經解析了JSON的地步,我可以從標題提取數據(往返),並可以查看包中的單個消息。目前我使用的是這樣的:
val messages = parsedJSON \\ "bundle" \\ classOf[JObject]
for (m <- messages) println(m)
這給了我:
Map(data -> List(1, 2, 3, 4, 5))
Map(data -> List(2, 3, 4, 5, 6))
但我想在這環做的就是把每一個地圖,並將其轉換回JSON即:
{
"data": [1,2,3,4,5]
}
我試過渲染(米)和各種其他半隨機的東西來嘗試並得到它的工作,但迄今沒有骰子。最近我來給我這個錯誤:
No implicit view available from Any => net.liftweb.json.package.JValue.
任何人都可以請指點我在正確的方向嗎?
在此先感謝!
不幸的是,捆綁中的單個消息的內容可以是任何有效的JSON,我不會提前知道。目前我只需要將每條消息中的數據保存到數據庫中,但爲了方便,我首先需要將消息作爲簡單的Scala(即地圖和列表),以便將其交給數據庫存儲... – PeterM 2012-01-05 08:10:13
是重新呈現的JSON進入數據庫,還是你需要它解析爲scala列表和映射到數據庫?如果您實際上不需要列表/地圖,則可以繞過整個過程並直接使用JValues。 – 2012-01-05 16:30:19
最後,我只是用它「按原樣」,但很遺憾,訪問數據是非常fiddly :) – PeterM 2012-01-06 08:58:11