我怀疑一定有一些我忽略的 Java 类或库提供了我正在寻找的功能:
我的 Select Input 内容可能会变得非常大,我想分层显示它们以提高可读性(参见下面的示例)。嵌套可以实现任意深度。
Weapons
Swords
1-handed
Katanas
Bokin
2-handed
Zweihänder
Spears
Angon
Food
Meat
Fish
Angel
Pasta
...
我没有使用,OptGroup因为我需要这些集合本身是可选择的。首先,我在网上搜索了一个 Java 树类的引用。没有找到任何东西,我在服务器端递归地将我的选项的数据收集到 HashMap 的 HashMap 的 HashMap 中,一直向下,然后调用new Gson().toJson(data). 在客户端,我通过在每个值上调用键来递归遍历它,填充文本以匹配深度。这工作了一段时间,直到我意识到我需要我的选项值与选项文本不同。现在我又不知所措了,因为该HashMap系列看起来无法处理这个额外的维度。
我以前没有尝试过手动编写 JSON,但我认为我现在要发送的 JSON 可能看起来像这样:
{
'name' : 'Weapons',
'id' : 45,
{
'name' : 'Swords',
'id' : 32,
{
'name' : '1-handed',
'id' : 341,
{
'name' : 'Katanas',
'id' : 3
},
{
'name' : 'Bokin',
'id' : 9
}
}
}
}
减去现有的解决方案,我认为我的下一个计划是创建一个存储自己的选项数据的类以及该类的实例数组。在解决方案的深层次上,也许我可以学习如何正确格式化 JSON 并使用 StringBuilder 和递归来构造 JSON 对象。但是,对于这个问题,难道没有利用现成库的解决方案吗?