これはおそらく簡単なことですが、私の難しさはScalaの新機能(既に私のお気に入りの言語になっています)に起因する可能性があります。今Scalaでlift-jsonを使用してJSONを解析する
{
"to" : "Peter",
"from" : "Dave",
"bundle" : [
{"data": [1,2,3,4,5]},
{"data": [2,3,4,5,6]}
]
}
を、私は私が(にしてから)ヘッダからデータを取得することができますし、目を通すことができますポイントにこのJSONを解析されました:
は基本的に私はこのようになりますいくつかの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]
}
私は、レンダリング(m)やさまざまな他のセミランダムなものを試してみましたが、これまでのところサイコロは使用できませんでした。私が一番近かったのはこのエラーです。
No implicit view available from Any => net.liftweb.json.package.JValue.
誰かが正しい方向に向いていますか?
ありがとうございます!
残念ながら、バンドル内の個々のメッセージの内容は、任意の有効なJSONとすることができ、私は事前に何を知ることができません。現時点では、各メッセージのデータをデータベースに保存する必要がありますが、簡単に行うには、メッセージを単純なScala(つまりマップとリスト)として取得して、データベースに格納して格納できるようにする必要があります... – PeterM
再レンダリングされたJSONはデータベースに送られますか、またはスカラーリストとマップとして解析されてデータベースに移動する必要がありますか?実際にリスト/マップが必要ない場合は、プロセス全体をバイパスしてJValuesを直接操作できます。 –
私はちょうどそれをそのままの状態で使っていましたが、データにアクセスするのは面倒です:) – PeterM