Es gibt jetzt eine LISTE:
[
{
"type":"呼吸系统",
"illness":"肺气肿",
"quotaName": "血压"
},
{
"type":"呼吸系统",
"illness":"肺气肿",
"quotaName": "血常规"
},
{
"type":"呼吸系统",
"illness":"哮喘",
"quotaName": "血常规"
},
{
"type":"循环系统",
"illness":"高血压",
"quotaName": "心电图"
},
{
"type":"循环系统",
"illness":"高血压",
"quotaName": "心电彩超"
}
]
Die Liste, die ich will:
[
{
"type":"呼吸系统",
"illnessList":[
{
"name":"肺气肿",
"quotaList":[
{
"name":"血压"
},
{
"name":"血常规"
}
]
},
{
"name":"哮喘",
"quotaList":[
{
"name":"血常规"
}
]
}
]
},
{
"type":"循环系统",
"illnessList":[
{
"name":"高血压",
"quotaList":[
{
"name":"心电图"
},
{
"name":"心电彩超"
}
]
}
]
}
]
Die ursprüngliche Liste, alle Krankheitssysteme, Krankheiten und Krankheitserkennungsindikatoren werden zusammengefasst
Ich möchte eine Liste basierend auf der Typklassifizierung erhalten, aber ich kann die Idee immer noch nicht finden
Schleife, nachdem ich sie viele Male durchquert habe, habe ich das Gefühl, dass mein Kopf verwirrt ist. Bitte geben Sie mir ein paar Ideen
按照题主的输入输出要求,从一个
JSONArray
转换到另一个JSONArray
...感觉输出的JSONArray无非是按照了两个属性进行了归类,其实结构应该类似于Map<String,Map<String,List<String>>
,所以我的想法就是把输入的JSONArray
要转化为Map<String, Map<String,List<String>>
的结构即可...而看到我刚才说的按照属性归类...那...很显然...噔噔噔!!!...心中自然浮现了Java8的Collectors.groupingBy
...直接无脑groupingBy
就行了嘛下面是我的小思路和代码:
既然是面向对象,所以我先创建了一个输入的Bo对象
FromDataBo
接着是按照输出格式创建的输出对象
ToDataBo
(带注释的方法先可以不看...只是转化用的,可以先看数据结构)输入输出对象有了,那就可以进行最重要按属性分类,我先把转化为
Map<String,Map<String,List<String>>
的代码贴出来...主要就是这个嘛...注释嘛,熟悉lamdba
的估计一眼就看出来...不熟悉再多了解哈吧最后是完整的测试代码和结果,最后的
result
对象就是你需要的输出JSONArray
测试结果:
就酱...
这个不是后端吐出来的吗?没必要你去做处理啊,跟后端说下就好啊。或者你就用他们吐的,实现你的效果就好。
无非你想更省事。直接一个循环处理。
用上面的数组,在循环里做处理 跟你处理成后来的 是一样的。不如前置处理。性能高。下面的是标准的风格。
界面贴出来。
代码地址
http://jsbin.com/roqejoficu/e...
写的不好,如有更优的方法,希望交流交流