java - 在 Java 中将动态 JSON 解析为对象
问题描述
我有一个奇怪的 JSON,它有动态对象名称。像这样的东西
{
"Sample_01": {
"class": "Tenant",
"A1": {
"class": "Application",
"template": "http"
}
},
"Sample_02": {
"class": "Tenant",
"A2": {
"class": "Application",
"template": "http"
}
}
}
这里Sample_01
和Sample_02
是动态的,这个值可以是任何东西。同样来自A1
和A1
attr。
现在我如何将它解析成一个Java Object
类?
我正在使用GSON
.
也可以使用任何其他方式,只要它是在 Java(Spring) 中
解决方案
您可以JSONObject
从http://central.maven.org/maven2/org/json/json/20180813/json-20180813.jar使用
public static void main(String[] args) {
String input="{\r\n" +
" \"Sample_01\": {\r\n" +
" \"class\": \"Tenant\",\r\n" +
" \"A1\": {\r\n" +
" \"class\": \"Application\",\r\n" +
" \"template\": \"http\"\r\n" +
" }\r\n" +
" },\r\n" +
" \"Sample_02\": {\r\n" +
" \"class\": \"Tenant\",\r\n" +
" \"A2\": {\r\n" +
" \"class\": \"Application\",\r\n" +
" \"template\": \"http\"\r\n" +
" }\r\n" +
" }\r\n" +
"}";
JSONObject jsonObject = new JSONObject(input);
Set<String> keys =jsonObject.keySet();
for(String key:keys) {
System.out.println("Key :: "+key +", Value :: "+jsonObject.get(key));;
}
}
如果您再次想解析 or 的值或Sample_01
检查 jsonObject 的实例,并重复循环Sample_02
Sample_XX
if(jsonObject.get(key) instanceof JSONObject)
推荐阅读
- regex - 仅当存在另一个元素时如何将元素放入正则表达式
- c# - join 子句中的表达式之一的类型不正确。类型推断失败
- python - 用于分隔 Excel 工作表的多个数据框列表
- algorithm - 有没有一种有效的方法来计算比特流中 1 的密度?
- sql - 将数据从 SQL 输出导出到 csv 时出错
- javascript - 是否有任何 JS 智能 json 模式验证器,比如 Joi,但有动态自定义错误?
- ios - FUIEmailAuth 未声明
- sql - 确定开始时间和结束时间之间的每个小时
- c# - 比较 2 个列表的 UnorderedEquals 方法在布尔值上失败
- linkedin - 我如何将我的域列入白名单以使用linkedin启用自动填充