Извлечение значений из ответа JSON в Scala - PullRequest
1 голос
/ 10 февраля 2012

Как я могу извлечь значения из следующего ответа:

 {"photosets":{"cancreate":1, "page":1, "pages":1, "perpage":1, "total":1, "photoset":
[{"id":"72157629171255321", "primary":"6817523143", "secret":"250f42ed7c", "server":"7166", 
"farm":8, "photos":"1", "videos":0, "title":{"_content":"Set1"}, "description":{"_content":""}, 
"needs_interstitial":0, "visibility_can_see_set":1, "count_views":"0", "count_comments":"0", 
"can_comment":1, "date_create":"1328373127", "date_update":"1328373159"}]}, "stat":"ok"}

Мне нужны не некоторые значения. Например, мне нужно поле "id".Спасибо,

Ответы [ 2 ]

3 голосов
/ 11 февраля 2012

Существует очень производительная оболочка (потому что Джексон ...) для scala.Jerkson поможет вам в этом проверьте это .

val ids: Seq[JString] = parse[JValue]("""
  {"photosets":{"cancreate":1, "page":1, "pages":1, "perpage":1, "total":1, "photoset":
  [{"id":"72157629171255321", "primary":"6817523143", "secret":"250f42ed7c", "server":"7166", "farm":8, "photos":"1", "videos":0, "title":{"_content":"Set1"}, "description": {"_content":""}, "needs_interstitial":0, "visibility_can_see_set":1, "count_views":"0", "count_comments":"0", "can_comment":1, "date_create":"1328373127", "date_update":"1328373159"}]}, "stat":"ok"}
""") \\ "id"

Вот как, обратите внимание на использование parse, которое вернет JValue, на котором вы можетевызовите \ или \\, который найдет на первом уровне или какое-либо свойство, указанное после.

Используя рефлексию, Джерксон также доступен для анализа непосредственно в случае класса, проверьте документацию ... это оченьмощный

0 голосов
/ 10 февраля 2012

В этом нет ничего от Scala, просто используйте JSON-анализатор, такой как Джексон и извлеките необходимую информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...