Как мне разобрать JSON в Scala - PullRequest
0 голосов
/ 01 июля 2018

У меня была работа с потоковым воспроизведением, которая анализировала потоковую запись kafka json с помощью json4s, но есть ситуация, с которой я не знаю, как справиться. каждая обработанная карта каждого JSON, как это:

Map(new_userid -> 70048837, target_type -> category, deviceid -> 70f817d51b321217_afa3673c0804, click_url -> , platform -> android_app, page_section -> List(category_switch_bar), click_location -> )

взгляните на раздел page_section, это не то, что мне нужно, я хочу получить результат: page_section -> "category_switch_bar", но раздел page_section - это список, в котором есть только элемент или None. Я кодирую это:

val pageSection=  record.getOrElse("page_section", "")

но ясно, что это неправильно. Как мне его собрать?

1 Ответ

0 голосов
/ 04 июля 2018

Согласно вашему примеру json page_section действительно является списком JSON, поэтому его разумно десериализовать как Scala List. Если вы уверены, что это всегда один или нулевой список элементов, и вы хотите преобразовать его в класс case вместо Map, вы можете использовать пользовательский FieldSerializer, который преобразует JArray в JString или * 1005. * и в случае, если класс будет Option[String] полем

Подробнее см. В документации по json4s https://github.com/json4s/json4s#serializing-fields-of-a-class

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