MOXY , , , MOXY , , , int JSON, java-.
, JSON, , . , String. ( ), JAXBContext .
ObjectAdapter:
public class ObjectAdapter extends XmlAdapter<Element, Object> {
private static final Map<String, String> JSON_TYPE_TO_JAVA_TYPE = new HashMap<>();
static {
JSON_TYPE_TO_JAVA_TYPE.put("string", "java.lang.String");
JSON_TYPE_TO_JAVA_TYPE.put("int", "java.lang.Integer");
}
@Override
public Element marshal(Object parameter) throws Exception {
return null;
}
@Override
public Object unmarshal(Element element) throws Exception {
if (null == element) {
return null;
}
String javaType = JSON_TYPE_TO_JAVA_TYPE.get(element.getAttribute("type"));
Class<?> type = getClass().getClassLoader().loadClass(javaType);
Constructor<?> declaredConstructor = type.getDeclaredConstructor(String.class);
return declaredConstructor.newInstance(element.getAttribute("value"));
}
}
@XmlAnyElement
@XmlJavaTypeAdapter(ObjectAdapter.class)
//@XmlElement
List<Object> someAttribute;