2015-07-28 75 views
0

我想在angular和spring mvc中發佈複雜的json對象。所以這個代碼很好。 簡單對象,如客戶數據,它的工作正常。但對於複雜的對象不工作並顯示錯誤「400錯誤請求」。 籃子對象可能不只一個。
我在Java如何在angularjs和spring mvc中發佈複雜的json對象

public class Data { 
    private List<BasketData> baskets; 
} 
    public class BasketData { 
    private CustomerData customer; 
} 

public class CustomerData { 
    private String name; 
    private String phone; 
    private String mobile; 
    private String address; 
} 

春季控制器

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

在HTML頁面中的對象我創建的NG-reeat形式。

 <div ng-repeat="item in items track by $index"> 
     <input ng-model="item[$index].baskets[$index].customer.phone"/> 
     <input ng-model="item[$index].baskets[$index].customer.name"/> 
     <input ng-model="item[$index].baskets[$index].customer.mobile"/> 
     <input ng-model="item[$index].baskets[$index].customer.address"/> 
     </div> 

和angularjs控制器創建這個JSON對象

var item = [ 
    { 
     baskets: [ 
      { 
       customer: 
        { 
         phone: "", 
         name: "", 
         mobile: "", 
         address: "" 
        } 
      } 
     ] 
    } 
]; 
$scope.items.push(item); 
$http.post('/post', $scope.items); 
+0

在你的JSON中,你有一個在籃子裏的客戶列表。在你的Java類中,它是一個簡單的客戶在你的類BasketData –

+0

@Apédémak我有一個baskest列表,一個有一個客戶。 –

+0

我明白了。我只是想用'[]'在你的JSON中說,你有一個客戶列表而不是一個單一的對象。您可以在一個籃子裏有多個客戶。我不知道這是否是您的問題的原因,但可能與服務器的匹配不正確。 –

回答

0

,我也面臨着同樣的問題時,我有複雜的JSON

@RequestMapping(method = RequestMethod.POST, value = "/submitReturn", consumes = MediaType.APPLICATION_JSON_VALUE) 

而在從客戶端,你在呼喚該方法

headers.add("Accept", MediaType.APPLICATION_JSON_VALUE); 
headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE); 

$.ajax({ 
    url: 'your url', 
    type:"post", 
    data : json, 
    dataType: 'json', 
    contentType: "application/json", 
    success: function(response, textStatus, jqXHR){} 
});