2015-07-28 87 views
1

我有一個包含許多輸入字段的表單來從用戶獲取數據。這些數據專注於許多對象。我想用這些數據在angularjs中創建一個json對象並相應地將它發送回服務器。如何在Angularjs和Spring中創建json複雜對象mvc

我的Java類對應於:

public class MyData{ 
    private List<Data1> listData1; 
    private String value; 
} 
public class Data1{ 
    private String name; 
    private List<Data2> listData2; 

} 
public class Data2{ 
    private String address; 
} 

這相當於在AngularJS下列對象:

var data= { 
    listData1: { 
     listData2: { 
      address: "" 
     }, 
     name:"", 
     }, 
    value:"" 
}; 

在服務器端,在我的控制,我嘗試檢索這個數據是這樣:

public @ResponseBody List<MyData> save(@RequestBody List<MyData> data){ 
} 

雖然在我的angularjs控制器我發送一個post請求如下:

$http.post('/save', angular.toJson(data)) 

但是當它運行時,我得到一個錯誤的請求錯誤。 (400錯誤請求

我是否正確創建對象?我是否正確地將其轉換爲JSON?服務器和客戶端之間的通信是否正確?哪一塊拼圖碎了或失蹤?

+0

你納入你的項目像傑克遜任何JSON解析器庫? –

+0

事實上,您可能會錯過一個能夠將傳入的JSON解析爲Java對象的庫。 – skubski

回答

0

你似乎把JSON對象和數組混在一起。

Data2解析爲:

{ address: "" } 

Data1解析爲:

{ name: "", listData2: [ %Data2% ] } 

MyData解析爲:

{ listData1: [ %Data1% ], value: "" } 

List<MyData>解析爲:

[ %MyData% ] 

預期輸入的例子:

[ 
    { 
    listData1: [ 
     { 
     name: "", 
     listData2: [ 
      { address: "" }, 
      { address: "" } 
     ] 
     }, 
     { 
     name: "", 
     listData2: [ 
      { address: "" }, 
      { address: "" } 
     ] 
     } 
    ], 
    value: "" 
    }, 
    { 
    listData1: [ 
     { 
     name: "", 
     listData2: [ 
      { address: "" }, 
      { address: "" } 
     ] 
     }, 
     { 
     name: "", 
     listData2: [ 
      { address: "" }, 
      { address: "" } 
     ] 
     } 
    ], 
    value: "" 
    } 
] 
+0

在html中如何設置ng-model的名字? ali