如何从Spring控制器发送json响应?

问题描述 投票:0回答:2

我是主题的新手。 我如何使用类似的东西(使用ResponseBody)从控制器返回JSON数据

@RequestMapping(value = "/ajaxtest", method = RequestMethod.GET)
@ResponseBody
public Set<String> ajaxTest() {
Set<String> records = new HashSet<String>();
records.add("Record #1");
records.add("Record #2");
return records; 
}

我尝试使用杰克逊,但有HTTP 406错误。 我应该在Spring 4.0.3中使用哪个正确的Jackson版本,使用什么算法? UPD Ajax通话

<button id="btn">Click!</button>
<script>
$("#btn").click(
function sendAjax() {
    $.ajax({
        url: "/ajaxtest",
        dataType: "json",
        success: function(data) {
            alert(data);
        },
        error:function() {
            alert("error");
        }
    });
})
</script>
json spring spring-mvc jackson
2个回答
0
投票

对于转换为json请求,您必须在项目构建路径中包含以下3个jarJackson jar用于将HTTP请求转换为jason格式。

还提到headear = content-type = application / json

这些是jar文件

jackson-mapper-asl.jar
jackson-core-asl.jar
jackson-jaxrs.jar

0
投票

如果您使用的是maven,则可以在pom.xml中包含以下依赖项

Jackson Mapper版本1足以将您的对象转换为JSON对象:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>

或者,您也可以使用最新的Jackson版本,

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.0</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.6.0</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.6.0</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.