Создание POJO для JSON, где дочерние узлы являются динамическими - PullRequest
0 голосов
/ 15 мая 2018

У меня есть файл JSON, который выглядит следующим образом.Я получу этот JSON в качестве ответа для API:

{
    "success": true,
    "message": "SUCCESS",
    "value": {
        "APP": {
            "option1": false,
            "option2": false
        },
        "DESKTOP": {
            "multiValued": true,
            "lob": true
        },
        "TestSomeLob": {
            "multiValued": true,
            "lob": true
        }
    }
}

Узлы внутри узла значения могут увеличиваться или уменьшаться в зависимости от состояния приложения.Я пытаюсь создать pojo для вышеупомянутого ответа, чтобы я мог получить список значений.Кто-нибудь может мне помочь в создании pojos для того же самого?

1 Ответ

0 голосов
/ 15 мая 2018

Используйте комбинацию

  1. jsonanygetter (http://tutorials.jenkov.com/java-json/jackson-annotations.html#jsonanygetter)
  2. jsonanysetter (http://tutorials.jenkov.com/java-json/jackson-annotations.html#jsonanysetter)
  3. jsoncreator (http://tutorials.jenkov.com/java-json/jackson-annotations.html#jsoncreator)

    public class POJONAME_TO_BE_REPLACED{
    
        // Two mandatory properties
        protected final boolean success;
        protected final String message;
    
        // Other flexible properties
        protected Map<String,Object> otherProps = new HashMap<String,Object>();
    
        @JsonCreator
        public POJONAME_TO_BE_REPLACED(@JsonProperty("success") boolean success, @JsonProperty("message") String message)
        {
            this.success = success;
            this.message = message;
        }
    
        public boolean getSuccess() { return success; }
        public String getMessage() { return message; }
    
        public Object get(String propName) {
            return otherProps.get(propName);
        }
    
        @JsonAnyGetter
        public Map<String,Object> any() {
            return otherProps;
        }
    
        @JsonAnySetter
        public void set(String propName, Object value) {
            otherProps.put(propName, value);
        }
    
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...