powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / spring Парсинг json ResponseBody com.fasterxml.jackson.core
4 сообщений из 4, страница 1 из 1
spring Парсинг json ResponseBody com.fasterxml.jackson.core
    #39226712
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день !

Есть контролер ,который принимает составной объект :

Код: java
1.
2.
3.
4.
5.
6.
public class User {

 
    private String firstname;
    private Address address; 
    private List<Document> documents = new AutoPopulatingList<>(Document.class);



Если я его отдаю то он отлично маршалится в модель вида :

Код: javascript
1.
2.
3.
4.
5.
{
  "firstname":"",
   "address":{},
  "documents": []
}



проблема в том чтобы правильно составить такой объект на стороне клиента в браузере ....

есть форма :

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
<form:form id="data" action="/approveUser" method="POST" modelAttribute="user" commandName="user">
                        <td><form:input path="firstname"/></td>
 
                        <td><form:input path="address.region"/></td>
                        <td><form:input path="address.town"/></td>

                        <td><form:input path="documents[0].series"/></td>
                        <td><form:input path="documents[0].number"/></td>



мне нужно из формы получить валидный json и отправить его постом ...

как делаю :

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
$.fn.serializeObject = function () {
    var o = {};
    var outputCopy = o;
    var a = this.serializeArray();
    var regex = /(\w+)+/g;
    $.each(a, function (index, item) {
        var keys = item.name.match(regex);
        keys.forEach(function (key, localIndex) {
            if (!outputCopy.hasOwnProperty(key)) {
                outputCopy[key] = {};
            }
            if(localIndex == keys.length - 1) { 
                outputCopy[key] = isNaN(item.value) ? item.value : +item.value; 
            }
            outputCopy = outputCopy[key];
        });
        outputCopy = o;
    });
    return o;
};


 var user = $("form").serializeObject();
 var json = JSON.stringify(user);



проблема в том что метод не умеет делать массив для поля documents!

как научить?


итоговый json получается вида :

Код: java
1.
2.
3.
4.
5.
{
  "firstname":"",
   "address":{},
  "documents": {"0":{}}
}



а нужен

Код: javascript
1.
2.
3.
4.
5.
{
  "firstname":"",
   "address":{},
  "documents": []
}
...
Рейтинг: 0 / 0
spring Парсинг json ResponseBody com.fasterxml.jackson.core
    #39226742
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public class User {

 
    private String firstname;
    private Address address; 
    private Documents[] documents;

}
...
Рейтинг: 0 / 0
spring Парсинг json ResponseBody com.fasterxml.jackson.core
    #39226746
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

я уже понял - проблема на стороне клиентского js кода ...

нужно переписать jquery функцию чтобы она создавала корректный json объект

сейчас он такой

Код: java
1.
2.
3.
4.
5.
{
  "firstname":"",
   "address":{},
  "documents": {"0":{}}
}



а нужно так ...
Код: java
1.
2.
3.
4.
5.
{
  "firstname":"",
   "address":{},
  "documents": []
}



вопрос как ее таким образом переписать?
...
Рейтинг: 0 / 0
spring Парсинг json ResponseBody com.fasterxml.jackson.core
    #39226765
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини. Я - как филин. Сказал что мышам надо стать ёжиками.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / spring Парсинг json ResponseBody com.fasterxml.jackson.core
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]