1

有没有一种方便的方法可以将具有嵌套 Java 类数组的 Java 类转换为 JSON?例如,我想将以下类的实例转换为 JSON:

public class Students {
  private final String serial_no;
  private final class InnerData {
     private final String[] strs;
     private final String name;
     private final String city;
  }
  private final StudentList[] students;

}

作为

{ 
  "serial_no" : null,
  students : [
    {
       "strs" : ["athlete", "grammarian"],
       "name" : "John Smith",
       "city" : "Auckland"
    },
    {
       "strs" : ["postmaster", "swimmer"],
       "name" : "Jane Doe",
       "city" : "Sydney"
    }
  ]
}

在春天做这件事的最好方法是什么?到目前为止,我遇到的示例似乎是没有嵌套的简单类。

4

1 回答 1

0

要从 spring 对象返回 JSON 形式的 java 对象需要两个简单的配置:1)将 'jackson-mapper-asl' 依赖添加到类路径 2)将 @ResponseBody 注释添加到控制器的方法 

1) 将“jackson-mapper-asl”依赖添加到类路径

在 spring mvc 项目中,我们需要在 pom.xml 文件中添加一个 'jackson-mapper-asl' 依赖项,并且默认完成对象到 json 的转换。

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

2)在控制器的方法中添加@ResponseBody注解

我们需要做的第二件事是针对控制器的方法使用“@ResponseBody”注释。这会让 spring 明白方法返回值应该绑定到 web 响应体。

@RequestMapping("studentlist")   public 

@ResponseBody   List<Student> getStudentList() {    List<Student> studentList = new ArrayList<Student>();    studentList.add(new Student(23, "Meghna", "Naidu", "meghna@gmail.com",      "8978767878"));    studentList.add(new Student(3, "Robert", "Parera", "robert@gmail.com",      "8978767878"));    studentList.add(new Student(93, "Andrew", "Strauss",      "andrew@gmail.com", "8978767878"));    studentList.add(new Student(239, "Eddy", "Knight", "knight@gmail.com",      "7978767878"));      return studentList;   
    } 
于 2015-08-14T02:48:47.563 回答