我有一个像这样的JSON字符串:
{"id":"111","name":"abc","ids":["740"],"data":"abc"}
我想切断字段"ids"
,但我不知道像["740"]
这样的值。所以,它可能是例如["888,222"]
或其他什么。目标是获取没有字段"ids"
的json字符串。
怎么做?我应该使用JackMapper
吗?
修改
我尝试将JackMapper
用作JacksMapper.readValue[Map[String, String]]
(jsonString)to get only fields that I need. But the problem is that
" ids":[" 740"]`抛出解析错误因为它是一个数组。因此,我决定在解析之前切断这个字段,虽然它是一个丑陋的解决方案,理想情况下我只是想将json字符串解析为Map。
答案 0 :(得分:2)
不确定JackMapper是什么,但如果允许其他库,我个人最喜欢的是:
val jsonString = """{"id":"111","name":"abc","ids":["740"],"data":"abc"}"""
val json = Json.parse(jsonString).as[JsObject]
val newJson = json - "ids"
import io.circe.parser._
val jsonString = """{"id":"111","name":"abc","ids":["740"],"data":"abc"}"""
val json = parse(jsonString).right.get.asObject.get // not handling errors
val newJson = json.remove("ids")
请注意,这是让您前往不会处理错误输入等的最小示例。