java如何遍历JSONObject(复杂)并选择keyvalue对并将其插入映射
我想写一段代码,可以迭代给定的JSONObject,只选择键值对并将其插入映射。 例如,这是我的JOSNObject->
{ "_id": { "docId": "123456" }, "meta": { "tId": "8267" }, "body": { "startDate": { "sdate": "2020-01-01T06:00:00Z" }, "endDate": { "edate": "2021-06-30T05:00:00Z" } } }
我只希望地图中有实际/有用的键值对,比如
"docId"="123456", "tId"="8267", "sdate"="2020-01-01T06:00:00Z" , "edate"="2021-06-30T05:00:00Z"
任何帮助都将不胜感激
为了让事情变得更清楚,我正在寻找一种解决方案或一种方法,可以在不显式指定键名的情况下获取JSONObject的值
# 1 楼答案
下面是一个递归解决方案:
下面是一个单元测试(它通过了):
(单元测试使用AssertJ库和Java 16语法,但生产函数与Java 8兼容。)
# 2 楼答案
也许你正在寻找这样的东西:
# 3 楼答案
首先,使用地图名称调用 地图名。价值观() 这将向您返回一个值列表 然后你可以在这个列表上迭代 并在地图中插入值