有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用json属性将json映射到java对象

我无法在java对象中映射此json。问题是我无法映射值v0。1.0到我的java对象任何人都可以帮助我如何将这个json映射到java对象。我不能用v0声明变量名。因此我使用json属性注释。但这对我来说不管用

如何使用此json生成java对象:

{
    "availableVariants": {
        "v0.1.0": {
            "resourceName": "raja",
            "get": "www.google.com",
            "deltaGet": "",
            "post": null,
            "put": null,
            "delete": null
        },
        "v1.1.0": {
            "resourceName": "raja",
            "get": "www.google.com",
            "deltaGet": "",
            "post": null,
            "put": null,
            "delete": null
        }
    }
}

I am not able to make java object for this json .

共 (1) 个答案

  1. # 1 楼答案

    如果将“v0.1.0”和“v1.1.0”视为地图中的键而不是对象的属性,问题会变得更简单吗?试试这样:

    public class Resource {
        private String resourceName;
        private String get;
        private String deltaGet;
        private String post;
        private String put;
        private String delete;
    
        // public getters and setters
    }
    
    public class VariantInfo {
        // resources indexed by version
        private Map<String, Resource> availableVariants; 
        // public getter and setter
    }
    
    public VariantInfo parseVariants(String json) {
        ObjectMapper objectMapper = (wherever your Jackson object mapper comes from);
        return objectMapper.readValue(json, VariantInfo.class);
    }