0

这是事情......我正在使用jtable(jquery)来显示一些用户数据。该组件需要一个带有两个字段的 json:Result 和 Records。在我的控制器中,我有一个返回 json 的方法:

@RequestMapping(method=RequestMethod.POST, value="/getUsersInJson")
 public @ResponseBody String getUsersInJsonHandler(){
     ElementsInList<User> users = new ElementsInList<User>();
     users.setItems(userService.getUsers());
     return users;
 }

ElementsInList 类包含两个字段:结果和记录。结果是获取成功消息的字符串,记录是参数化列表,在这种情况下包含用户列表。我得到这个 JSON:

"{"结果":"OK","记录":[{"用户名":"john",

但我需要这个:

"{"结果":"OK","记录":[{"用户名":"john",...

这是我的映射:

<!-- Json converter bean --> 
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
        <ref bean="jacksonMessageConverter"/>
        </list>
    </property>
</bean>

我该怎么做?我检查了一些帖子,但有旧版本。我正在使用 Spring 3、Spring MVC 和 jQuery。

4

1 回答 1

0

我通过使用 JsonProperty 注释解决了它。您可以给出杰克逊将用于构建 json 字段的名称。这里有一个 jtable (jquery) 的例子:

public class ElementsInList<T> {
    @JsonProperty("Result")
    private String result = "OK";

    @JsonProperty("Records")
    private List<T> records;
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }
    public List<T> getRecords() {
        return records;
    }
    public void setRecords(List<T> records) {
        this.records = records;
    }
}

结果 json 是这样的: {"Result":"OK","Records":[{"roleName":"admin"...

但是还有更多关于这个注释的信息。检查 api 了解更多信息: http: //fasterxml.github.io/jackson-annotations/javadoc/2.1.0/com/fasterxml/jackson/annotation/package-summary.html

于 2013-07-22T07:42:45.557 回答