Il y a maintenant une LISTE :
[ { "type":"呼吸系统", "illness":"肺气肿", "quotaName": "血压" }, { "type":"呼吸系统", "illness":"肺气肿", "quotaName": "血常规" }, { "type":"呼吸系统", "illness":"哮喘", "quotaName": "血常规" }, { "type":"循环系统", "illness":"高血压", "quotaName": "心电图" }, { "type":"循环系统", "illness":"高血压", "quotaName": "心电彩超" } ]
La liste que je veux :
[ { "type":"呼吸系统", "illnessList":[ { "name":"肺气肿", "quotaList":[ { "name":"血压" }, { "name":"血常规" } ] }, { "name":"哮喘", "quotaList":[ { "name":"血常规" } ] } ] }, { "type":"循环系统", "illnessList":[ { "name":"高血压", "quotaList":[ { "name":"心电图" }, { "name":"心电彩超" } ] } ] } ]
La liste originale, tous les systèmes de maladies, maladies et indicateurs de détection de maladies sont combinés
Je souhaite obtenir une liste basée sur la classification des types, mais je ne trouve toujours pas l'idée
Boucle, après l'avoir parcourue plusieurs fois, j'ai l'impression que ma tête est confuse. S'il vous plaît, donnez-moi quelques idées
.
Selon les exigences d'entrée et de sortie du questionneur, commencez simplement par un
JSONArray
转换到另一个JSONArray
...感觉输出的JSONArray无非是按照了两个属性进行了归类,其实结构应该类似于Map>
,所以我的想法就是把输入的JSONArray
要转化为Map>
的结构即可...而看到我刚才说的按照属性归类...那...很显然...噔噔噔!!!...心中自然浮现了Java8的Collectors.groupingBy
...直接无脑groupingBy
Voici ma petite idée et mon code :
Comme il est orienté objet, j'ai d'abord créé un objet Bo d'entrée
FromDataBo
Ensuite, il y a l'objet de sortie créé selon le format de sortie
ToDataBo
(Vous pouvez d'abord ignorer la méthode annotée... c'est juste pour la conversion, vous pouvez d'abord regarder la structure des données)Maintenant que les objets d'entrée et de sortie sont en place, nous pouvons classer les attributs les plus importants par attributs. Je vais d'abord voir l'estimation de la conversion en
Map>
的代码贴出来...主要就是这个嘛...注释嘛,熟悉lamdba
en un coup d'œil... Si vous ne la connaissez pas, apprenez-en plus. çaÀ la fin se trouve le code complet du test et les résultats, le dernier
result
对象就是你需要的输出JSONArray
Résultats des tests :
Juste comme ça...
Est-ce que cela ne vient pas du backend ? Vous n’avez pas besoin de le gérer, il suffit d’en informer le backend. Ou vous pouvez simplement utiliser ce qu’ils crachent pour obtenir votre effet.
C'est juste que vous voulez éviter les ennuis. Traiter directement en boucle.
Utilisez le tableau ci-dessus et effectuez le traitement dans la boucle, qui est le même que celui que vous traiterez plus tard. Pas aussi bon que le prétraitement. Haute performance. Ce qui suit est le style standard.
L'interface est publiée.
Code adresse
http://jsbin.com/roqejoficu/e...
L'écriture n'est pas bonne. S'il existe une meilleure méthode, j'espère la partager
.