Spring 3使用Jackson将ArrayList序列化为JSON而不包装到对象(无名称)


问题内容

我有简单的资源,应该返回JSON数组,但是它返回的对象是array:

@RequestMapping(value = "/types", method = RequestMethod.GET)
    public List <JsonObject> types() {
        ArrayList <JsonObject> list=new ArrayList<JsonObject>();
        list.add(new JsonObject("Audi"));
        list.add(new JsonObject("Mercedes"));
        return list;
    }

其中JsonObject是具有三个String属性(值,id,标签)的简单类。

返回值:

{"jsonObjectList":[{"value":"Audi","id":"Audi","label":"Audi"},{"value":"Mercedes","id":"Mercedes","label":"Mercedes"}]}

但是我需要什么(因为期望Jquery UI自动完成):

[{"value":"Audi","id":"Audi","label":"Audi"},{"value":"Mercedes","id":"Mercedes","label":"Mercedes"}]

如何实现呢?提前致谢。


问题答案:

在Spring
3.1中,你应该能够设置在一个属性MappingJacksonJsonView叫豆extractValueFromSingleKeyModel,以true去除包装。