java - 在 Java 中将动态 JSON 解析为对象

标签 java json gson

我有一个奇怪的 JSON,它具有动态对象名称。像这样的事情

{
    "Sample_01": {
        "class": "Tenant",
        "A1": {
            "class": "Application",
            "template": "http"
        }
    },
    "Sample_02": {
        "class": "Tenant",
        "A2": {
            "class": "Application",
            "template": "http"
        }
    }
}

此处 Sample_01Sample_02 是动态的,该值可以是任何值。 A1A1 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_01Sample_02Sample_XX 的值,请检查 jsonObject 的实例,例如 if(jsonObject .get(key) instanceof JSONObject) 并重申循环

关于java - 在 Java 中将动态 JSON 解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53080559/

相关文章:

java - Spring Boot 应用程序在 IDE 中运行时工作,但当部署为 war 文件时,请求失败并出现 500 错误

json - CF 中关系数据库中的智能与否 : Persist serialized data (dotnet-protobuf, protobuf-net,json)

Java,如何解析 JSON 进行地理定位?

javascript - 使用 Handlebars 显示来自 parse.com 的 json 响应

kotlin - 如何将 JSON 对象解析为枚举

java - 实体未找到异常 : Unable to find id

Java:部署.war文件时执行方法

java - 使用Gson将JSON反序列化为java记录

java - 如何使用 auto-value-gson 映射未知的 json 字段

java - 打破 @Query 的 LIMIT