我有一个奇怪的 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 对象
类?
我正在使用GSON
。
也可以使用任何其他方式,只要是Java(Spring)中的
最佳答案
您可以使用http://central.maven.org/maven2/org/json/json/20180813/json-20180813.jar中的JSONObject
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));;
}
}
如果您再次想要解析 Sample_01
或 Sample_02
或 Sample_XX
的值,请检查 jsonObject 的实例,例如 if(jsonObject .get(key) instanceof JSONObject)
并重申循环
关于java - 在 Java 中将动态 JSON 解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080559/