我有一个数据字符串,想将其解析为键/值对,然后将其附加到“ 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
//此处输出类型为List [(String,String)]
rec.put(parsedData)
//“ put”方法的输入-公共无效put(字符串键,对象值)
预期结果:动态添加来自消息的数据:
rec.put("name", "John")
rec.put("surname", "Peterson")
rec.put("country", "France")
rec.put(“amount”, null)
答案 0 :(得分:0)
我认为这是您要求的更优雅的方式。
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) }