Ваш внешний интерфейс подход является правильным. Все, что вам нужно сделать, это создать пустой массив, направить туда столько объектов, сколько вам нужно, и отправить его на сервер.
//Create an empty array
$scope.formData = [];
//Push as many objects as you need
$scope.formData.push({'a' : 1, 'b' : 2});
$scope.formData.push({'a' : 3, 'b' : 4});
//Post it to server
$http.post('saveData', $scope.formData).success(function(resp){
//handle response
});
Но ваша пружинная сторона может быть улучшена. Массивы объектов (Object[]
), как правило, устарели, поскольку они не являются безопасными типа и, следовательно, подвержены ошибкам. Они должны быть заменены параметризированными коллекциями (от Java Collections Framework), когда это возможно.
В вашем случае можно применить следующие шаги:
Создать класс вашего объекта домена или DTO, что соответствует полученным объектам JSon.
public class MyDomainObject {
private Integer a;
private Integer b;
public MyDomainObject(){ }
//getters and setters omitted
}
Затем в методе конечных точек переключения @RequestBody
типа из Object[]
в List<MyDomainObject>
.
@RequestMapping(path = "/saveDate", method = RequestMethod.POST)
public void postDomainObjects(@RequestBody List<MyDomainObject> myDomainObjects){
//Do some business logic.
//i.e. pass further to service or save to database via repository
}
И вы получаете список объектов, являющихся точным java-представлением объектов json от углового. Вы можете просматривать список в стандартной ява способами, например, с помощью Foreach оператора:
for (MyDomainObject obj : myDomainObjects) {
//do something with each object.
//i.e. print value of "a" field
System.out.println("Value of a: " + obj.getA());
}
или с использованием потоков в случае Явы 8:
//Apply some filtering, mapping or sorting to your collection.
//i.e. count sum of "a" field values.
int sumOfAFields = myDomainObjects.stream()
.mapToInt(o -> o.getA())
.sum();
Примечание: Выше решение будет работать, если вы настроили mapper. Если вы используете Spring-загрузку с любым веб-стартером, вы получите ее бесплатно. В стандартном проекте Spring (с настройкой по своему усмотрению) вы должны включить jackson библиотеку в путь к вашему проекту и зарегистрировать ObjectMapper
bean в классе конфигурации или xml.
Это перепутано. Что вы пытаетесь отправить? Список чего? Ваш Alist или Blist не являются списками (в значении массивов), а представляют собой карту значений ключа (или проще: объект). Вы хотите отправить список объектов? Как выглядит объект вашего домена? –
Правильно, я хочу отправить список объектов домена. Мы можем предположить, что объект домена содержит поля a и b. То, что я сделал, я получил его как простой массив объектов @RequestBody Object [] objDetail Тогда я итерация его с помощью JSONArray, и я был в состоянии получить значения по желанию – CrazyMac
Ok, теперь я вижу. Я отправил свой ответ. –