java - 将动态地图转换为列表?
问题描述
我有一张包含以下数据的地图
{LABEL3Access=RW, LABEL3Match3type=path, LABEL3Match3subType=path, LABEL2Match2type=chassis123, LABEL2Match2subType=chassis123, LABEL1Labelname=com.model.Equipment, LABEL1Access=R, LABEL3Labelname=com.model.Test, LABEL1Match1subType=chassis, LABEL1Match1type=chassis, LABEL2Labelname=com.model.Service, LABEL2Access=CWRD}
如果您检查此映射,每个键包含 1 或 2 或 3,并且它可以包含 4、5、6 依此类推,因为这是一些用于分隔事物的动态映射,所以我添加了一个数字。现在,当我从数据库返回此映射数据时,我必须转换成这样的 JSON 格式
"labels":[
{
"labelName":"com.model.Equipment",
"access":"R",
"match":{
"type":"chassis",
"subType":"chassis"
}
},
{
"labelName":"com.model.Service",
"access":"CWRD",
"match":{
"type":"chassis123",
"subType":"chassis123"
}
},
{
"labelName":"com.model.Test",
"access":"RW",
"match":{
"type":"path",
"subType":"path"
}
}
]
一种方法是去 Map 的每个键,如果包含特定的数字添加到列表中,但它看起来不可行,因为 Map 是动态的,可以包含任意数量的key,value
对,我尝试在
new JSONObject(mapData);
但这也没有给出正确的 JSON 数据。如果不是 Json 数据至少转换成 List 组?
解决方案
您正在寻找的东西不是很通用。遍历 JsonObject 是可行的,但您希望在每次迭代中执行的操作是您的调用。
Object.entries(jsonObj).forEach(([key, value]) => {
// do something with key and val
});
希望这会为您指明正确的方向。
推荐阅读
- ethereum - uniswap 低级交换调用
- algorithm - 在动态编程问题“正则表达式 II”中没有得到正确答案
- authentication - Postman 中的请求与浏览器中相同的 cookie 和标头返回 401,但在浏览器中一切正常
- html - 如何将包含常规文本和链接的 h4 居中,而不会丢失它们之间的空格?
- java - Javafx 无法在 ubuntu 20 上播放带有 MediaException 的 mp3 文件
- c# - 在 ListView 中使用多个列定义
- python - 不使用 if else 的货币转换器
- vue.js - 我的动态组件(布局)不适用于 vuejs 中的命名插槽
- php - 如何在 laravel 迁移中将字符串转换为布尔值?
- c - 带负数的 imul dx 在 EAX 中产生大的正数?