如何在Spring @ResponseBody </string>中使用Jackson将ArrayList <string>转换为JSON对象

时间:2013-05-15 01:30:10

标签: java json spring spring-mvc jackson

服务器层将返回String值列表,如

{"Bob", "Charlotte", "Johnson", "David"...}

现在我们需要List String作为一个Json对象来推送到前端,比如

[{id: "Bob"}, {id: "Charlotte"}, {id: "Johnson"}, {id: "David"...}]

[{name: "Bob"}, {name: "Charlotte"}, {name: "Johnson"}, {name: "David"...}]

任何标签都没问题,我们只需要一个标签就可以将它作为JSON对象。杰克逊有没有东西可以默认转换字符串列表i.e. {string: "Bob"}?那将是非常可爱的......

2 个答案:

答案 0 :(得分:7)

最简单的方法是让您的控制器方法返回一个完全映射到您想要的JSON的结构 - 例如List<SomeObject>其中SomeObject是一个String id字段的类

答案 1 :(得分:1)

这样做的方法是将您的String列表转换为新地图。

代码:

@ResponseBody
@RequestMapping("/mapping")
function mySpring()
{


            List<String> myStringList;
            Map<String,String> jsonMap= new LinkedHashMap<String,String>(); 
     // Use LinkedHashMap if you want to maintain order


    String key="id";        
     // Id or Name

            for (String myString: myStringList)
        {
        jsonMap.put(key,myString);

        }

return jsonMap;

}