在JAX-RS中将JSON对象转换为LinkedHashMap

时间:2015-01-24 23:46:40

标签: java rest jaxb cxf jax-rs

请考虑以下代码。

@POST
@Path("records")
public Response insertRecords(List<RecordBean> recordBeans) {
    try {
        List<Record> records = Utils.getRecordsFromRecordBeans(tenantId, recordBeans);
        dataService.insert(records);
        ....
    } catch (Exception e) {
        ....
    }
}

RecordBean课程如下,

@XmlAccessorType(XmlAccessType.FIELD)
   @XmlType(propOrder = {".....", ".....", "values" })
    @XmlRootElement(name = "record")
    public class RecordBean {

    ...........

    @XmlElement(required = true)
    private Map<String, Object> values;

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

    public Map<String, Object> getValues() {
        return values;
    }

    public Object getValue(String name) {
        return this.values.get(name);
    }
}

insertRecord方法接收json消息并使用JAXB / JAX-RS,它将转换为List<RecordBean>。但recordBean有一个名为“值”的属性。我希望将此属性转换为LinkedHashMap<String, Object>,因为我希望保留这些值的顺序。我怎样才能做到这一点?有没有办法通过cxf-servlet.xml或任何其他方式为Map接口分配具体的实现?

0 个答案:

没有答案