Разбор JSON и итерация по объекту в Scala - PullRequest
4 голосов
/ 14 сентября 2011

Например, следующая строка JSON:

[{"id": "user1", "password": "ps1"},{"id": "user2", "password": "ps2"},{"id": "user3", "password": "ps3"}]

Какой самый лучший и наиболее оптимизированный способ его анализа в Scala, итерации по каждому результату и правильного анализа?

Спасибо.

Ответы [ 5 ]

8 голосов
/ 14 сентября 2011

с Lift-JSON:


import net.liftweb.json.JsonParser._
import net.liftweb.json.DefaultFormats

val jsonString = //your jsonString....

case class Credential (id:String, password:String)

implicit val formats = DefaultFormats
val credentials = parse(jsonString).extract[List[Credential]]

credentials foreach { cred => println(cred.id + " " + cred.password) } 

здесь все объясняется: http://www.assembla.com/spaces/liftweb/wiki/JSON_Support

6 голосов
/ 14 сентября 2011

Я думаю, что эта запись в блоге дает исчерпывающий ответ на ваш вопрос: http://debasishg.blogspot.com/2011/02/applicatives-for-composable-json.html в конце также есть ссылка на полный репозиторий.

2 голосов
/ 14 сентября 2011

Вы можете использовать lift-json библиотека: http://www.assembla.com/spaces/liftweb/wiki/JSON_Support

1 голос
/ 14 сентября 2011

В каркасе есть библиотека JSON, созданная с использованием комбинаторов синтаксического анализа: http://www.scala -lang.org / api / current / scala / util / parsing / json / package.html

Одерский и Веннерс проведут вас через это в своей книге , одной из последних глав.

1 голос
/ 14 сентября 2011

Помимо lift-json и упомянутого выше подхода к классу типов, я знаю о Spray-JSON (PEG-парсер) и твиттерной json lib (на основе кода в книге «Программирование в Scala») и json lib в blueeyes.,Есть и другие!

Я предлагаю взглянуть на Джексона , которая является зрелой и многофункциональной библиотекой для анализа JSON из Java.

У Джексона есть "официальное" расширение для scala: jackson-module-scala и еще одно Jerkson .

...