Как разобрать строку данных в пары ключ-значение и добавить ее в метод «put»? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть строка данных, и я хочу разобрать ее в пары ключ / значение, а затем добавить ее в метод «put» и затем кодировать в GenericRecord.Тем не менее, это не сработает, и я был бы благодарен за подсказку, как это сделать.

Я преобразовал строку в список строк, но здесь ожидаются только две строки.Был бы признателен за любые идеи, как решить проблему.

data = "{"name":"John", "surname":"Peterson", "country":"France", “amount”: null}"

val parsedData = data.split(",").map(x => {val y = x.split(":");(y(0),y(1))}).map(x => (x._1,x._2)).toList  

// тип вывода здесь Список [(String, String)]

rec.put(parsedData) 

// ввод для «пут»method - public void put (String key, Object value)

Ожидаемые результаты: динамическое добавление данных по мере их поступления из сообщения:

rec.put("name", "John")
rec.put("surname", "Peterson")
rec.put("country", "France")
rec.put(“amount”, null)

1 Ответ

0 голосов
/ 20 сентября 2019

Я думаю, что это более элегантный способ сделать то, что вы просили.

import org.json4s._
import org.json4s.jackson.JsonMethods._

implicit val formats = org.json4s.DefaultFormats

val data = "{"name":"John", "surname":"Peterson", "country":"France", “amount”: null}"
val parsedData: Map[String, String] = parse(data).extract[Map[String, String]]

parsedData.foreach { case (key, value) => rec.put(key, value) }
...