Jackson: Dividir un JSON y poblar conocidas y desconocidas propiedades

Jordi:

Estoy codificación de un servicio de Primavera-arranque y estoy usando Jackson ObjectMappercon el fin de mango con mis jsons.

Necesito dividir un JSON como esto:

{
  "copy": {
    "mode": "mode",
    "version": "version"
  },
  "known": "string value",
  "unknown": {
   "field1": "sdf",
   "field2": "sdfdf"
  },
  "unknown2": "sdfdf"
}

Es decir, mi frijol es la siguiente:

public class MyBean {

    private CopyMetadata copy;
    private String known;
    private Object others;

}

Me gustaría para rellenar los campos conocidos de MyBeanpropiedades, y mover las otras propiedades desconocidas dentro de MyBean.othersla propiedad.

Propiedades conocidas son que se colocan como dentro del campo MyBean.

¿Algunas ideas?

Vaibhav Gupta:

Una posible solución a este problema es utilizar las anotaciones Jackson @JsonAnyGetter and @JsonAnySetter

Su modelo Mybean.class debería ser algo como esto y que debería funcionar

import java.util.HashMap;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;

public class MyBean {

    private CopyMetadata copy;
    private String known;
    private Map<String, Object> others = new HashMap<>();

    public CopyMetadata getCopy() {
        return copy;
    }

    public void setCopy(CopyMetadata copy) {
        this.copy = copy;
    }

    public String getKnown() {
        return known;
    }

    public void setKnown(String known) {
        this.known = known;
    }

    public Map<String, Object> getOthers() {
        return others;
    }

    public void setOthers(Map<String, Object> others) {
        this.others = others;
    }

    @JsonAnyGetter
    public Map<String, Object> getUnknownFields() {
        return others;
    }

    @JsonAnySetter
    public void setUnknownFields(String name, Object value) {
        others.put(name, value);
    }

}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=209646&siteId=1
Recomendado
Clasificación