2016-07-04 19 views
1

javaオブジェクトを含むjsonを取得するにはどうすればよいですか?配列の識別子としてキーを使用しますか? 私は、以下のものをSpring MVC 4.xに持っています。私はジャクソンにオブジェクトをマーシャリングするためにジャクソンのライブラリを使用します。Spring Web MVC Json - オブジェクト配列(名前付き配列)のjacksonキー/名前

@RequestMapping(value="dogs") 
    public List<Dog> getDogs(){ 
     List<Dog> list_dogs = new ArrayList<Dog>(); 
     list_dogs.add(new Dog("dog1",1)); 
     list_dogs.add(new Dog("dog2",2)); 
     return list_dogs; 
    } 

私は次の応答を得る:[{"name":"dog1","age":1},{"name":"dog2","age":2}]

私は次のようにそれを持ってしたいと思います:

{ 
    "array": [{ 
     "name": "dog1", 
     "age": 1 
    }, { 
     "name": "dog2", 
     "age": 2 
    }] 
} 

私は配列の名前を提供するにはどうすればよいですか?

答えて

1

[OK]を使用すると、リストのみではなくマップを使用できます。

@RequestMapping(value="dogs") 
public Map<String, List<Dog>> getDogs(){ 
    Map<String, List<Dog>> map = new HashMap<String, List<Dog>>(); 
    List<Dog> list_dogs = new ArrayList<Dog>(); 
    list_dogs.add(new Dog("dog1",1)); 
    list_dogs.add(new Dog("dog2",2)); 
    map.put("myArray", list_dogs); 
    //return list_dogs; [{"name":"dog1","age":1},{"name":"dog2","age":2}] 
    return map;  //{"myArray":[{"name":"dog1","age":1},{"name":"dog2","age":2}]} 
} 

{"myArray":[{"name":"dog1","age":1},{"name":"dog2","age":2}]} 
0

期待する応答はjsonオブジェクトであり、json配列ではありません。 必要なキーを持つjsonオブジェクト/マップを作成する

@RequestMapping(value="dogs") 
public Map<String, List<Dog>> getDogs(){ 
    List<Dog> list_dogs = new ArrayList<Dog>(); 
    list_dogs.add(new Dog("dog1",1)); 
    list_dogs.add(new Dog("dog2",2)); 
    Map<String, List<Dog>> map = new HashMap<>(); 
    map.put("array", list_dogs); 
    return map; 
} 
関連する問題