如何在Angularjs和Spring mvc中创建json复杂对象

时间:2015-07-28 09:33:15

标签: java json angularjs spring

我有一个包含许多输入字段的表单,用于从用户获取数据。此数据专用于许多对象。我想在angularjs中用这些数据创建一个json对象,并相应地将它发送回服务器。

My Java Class对应于:

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控制器中,我发送一个帖子请求如下:

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

但是在运行它时,我收到错误的请求错误。 ( 400错误请求

我是否正确创建了对象?我正确地将它转换为JSON吗?服务器和客户端之间的通信是否正确?哪一块拼图被打破或遗失?

1 个答案:

答案 0 :(得分:0)

您似乎混淆了JSON对象和数组。

private void writeToFile(String data, String fileName) { try { String UTF8 = "UTF-8"; int BUFFER_SIZE = 8192; FileOutputStream fileOutputStream = openFileOutput(fileName, Context.MODE_PRIVATE); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream, UTF8), BUFFER_SIZE); bufferedWriter.write(data); bufferedWriter.close(); } catch (IOException e) { Log.e("writeToFile: ", "Datei-Erstellung fehlgeschlagen: " + e.toString()); } } 解析为:

Data2

{ address: "" } 解析为:

Data1

{ name: "", listData2: [ %Data2% ] } 解析为:

MyData

{ listData1: [ %Data1% ], value: "" } 解析为:

List<MyData>

预期输入的一个例子:

[ %MyData% ]