【问题标题】:Spring 3 ArrayList serialization to JSON with Jackson without wrapping to object (without name)Spring 3 ArrayList 序列化为 JSON 与 Jackson 没有包装到对象(没有名称)
【发布时间】:2011-07-24 15:39:07
【问题描述】:

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

@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 是具有三个字符串属性(值、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"}]

如何做到这一点? 提前致谢。

【问题讨论】:

    标签: java json spring spring-mvc jackson


    【解决方案1】:

    在 Spring 3.1 中,您应该能够将名为 extractValueFromSingleKeyModelMappingJacksonJsonView bean 上的属性设置为 true 以移除包装器。

    哦,好像Why is Jackson wrapping my objects with an extra layer named after the class?之前有人问过这个问题

    【讨论】:

    • 谢谢安迪!这成功了。我不得不迁移到 Spring 3.1 并添加
    • 我没有......但它是同样的问题。不幸的是,在我写这个问题之前,我无法用谷歌搜索它。我真的试过了……
    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2016-06-11
    • 2017-09-15
    • 2018-07-07
    • 2018-03-24
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多