java - 为密钥始终不同的 json 文件创建 Java 对象
问题描述
.json 文件看起来像这样
XYZ.json
{
"Business Information": {
"xpath": "//span[text()='Business Information']",
"elementType": "LINK",
"findBy": "XPath"
},
"AP and Ship-To Information": {
"xpath": "//span[text()='AP and Ship-To Information']",
"elementType": "LINK",
"findBy": "XPath"
},
"Other Business Details": {
"xpath": "//span[text()='Other Business Details']",
"elementType": "LINK",
"findBy": "XPath"
},
"Bank and Trade Information": {
"xpath": "//span[text()='Bank and Trade Information']",
"elementType": "LINK",
"findBy": "XPath"
}
}
我想创建一个可以存储这些密钥的 Java 对象。但问题是有 100 多个不同的键。为嵌套元素创建对象很容易。
选项卡.class
public class Tabs {
private String xpath;
private String elementType;
private String findBy;
}
但是对于 TabNames 类...
TabNames.class
public class TabNames {
Tab Business Name; // Cannot create Object with whitespace
Tab 2;
Tab 3;
and so on.. // there maybe 100s of tabs from JSON
像这样配置一个对象是不可能的,而且简直是愚蠢的。任何人都可以为该问题提供替代或更好的解决方案吗?
解决方案
您可以HashMap
为此使用,例如:
HashMap<String, Tabs> myTabs = new HashMap<>();
myTabs.put("Business Information", new Tabs());
在这里,您将替换new Tabs()
为已解析的Tabs
类,并且您将更改为"Business Information"
与Tabs
该类关联的键。这可以通过迭代 JSON 对象在 for 循环中完成。
之后您可以Tabs
根据以下Key
值获取对象HashMap
:
Tabs tab = myTabs.get("Business Information");
推荐阅读
- java - 建筑/拆除历史的数据结构
- java - 调试 CUP 语法
- javascript - javascript函数中MVC调用函数方法怎么来的?
- haskell - 如何在横向函数中添加 lamda 表达式?
- angularjs - Restangular POST 返回空的 parentResource
- r - 如何在 R 中访问 $call 函数的公式
- wordpress - Wordpress 图片不会将 url 更改为 https
- stl - 如何从 gdb 内部深入了解 STL 容器中包含的(无 STL)元素
- asp.net-mvc - 关于让 UI 人员设计我们的 Web 应用程序的建议
- php - Laravel 5.6 & 保存数组值