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

スプリング オブジェクトから JSON 形式で Java オブジェクトを返すには、2 つの簡単な構成が必要です。 

1) クラスパスに「jackson-mapper-asl」依存関係を追加する

Spring MVC プロジェクトでは、「jackson-mapper-asl」依存関係を pom.xml ファイルに追加する必要があり、オブジェクトから 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 に答える