Size: a a a

2020 October 29

AB

Andrew Bystrov in pro.jvm
А ты как хотел?
источник

A

Artjom Kalita in pro.jvm
В смысле отстойно ? если тебе нужно такой вариант JSON-a,  как вышеописанный отдавать, то это самый простой вариант
источник

A

Artjom Kalita in pro.jvm
можно еще поебатся и сделать кастомные десериалайзер в Джаксоне
источник

A

Artjom Kalita in pro.jvm
но это будет выглядить более коряво чем создать ДТО и в него мапить правильные данные
источник

VL

Vladimir Lykov in pro.jvm
довольно странная структура на выходе ожидается))
источник

VL

Vladimir Lykov in pro.jvm
camunda like подход
источник

L

Loljeene in pro.jvm
Артём Бояршинов
Заводить на каждое поле в POJO свой класс, в котором прописывать тип и название поля - звучит отстойно.
ну насколько я понял класс будет ровно один. Что то типа MyField
источник

АБ

Артём Бояршинов... in pro.jvm
Artjom Kalita
Берешь делаешь ДТО под эту структуру и мапишь поджо в него и отправляешь на сериализацию
Да, можно смапить свой POJO в Map<String, MyField>, где MyField что-то вроде
public class MyField {
 private String name;
 private String type;
 private String value;
}

Но тогда придется выдергивать названия полей и типы с помощью рефлексии, а хотелось бы этого избежать
источник

АБ

Артём Бояршинов... in pro.jvm
Vladimir Lykov
довольно странная структура на выходе ожидается))
О чем и речь(((
источник

VL

Vladimir Lykov in pro.jvm
просто в камунде свои утильные классы есть для преобразования
источник

АБ

Артём Бояршинов... in pro.jvm
Andrew Bystrov
А ты как хотел?
Я хотел заиспользовать какую-нибудь библиотечку, которая переведет мой POJO в такую вот хрень
источник

L

Loljeene in pro.jvm
выглядит как попытка найти проблему там где ее нет
источник

L

Loljeene in pro.jvm
Артём Бояршинов
Да, можно смапить свой POJO в Map<String, MyField>, где MyField что-то вроде
public class MyField {
 private String name;
 private String type;
 private String value;
}

Но тогда придется выдергивать названия полей и типы с помощью рефлексии, а хотелось бы этого избежать
А откуда эту информацию по твоему возьмет либа? )
источник

AB

Andrew Bystrov in pro.jvm
Артём Бояршинов
Я хотел заиспользовать какую-нибудь библиотечку, которая переведет мой POJO в такую вот хрень
Такая библиотека есть - jackson. Чтобы тебе перевести свой pojo в json, тебе надо для начала составить нормальный pojo
источник

MG

Maxim Grankin in pro.jvm
Артём Бояршинов
Заводить на каждое поле в POJO свой класс, в котором прописывать тип и название поля - звучит отстойно.
кажется можно как-то с женериками это обобщить
сделать класс, который будет принимать T, передавать туда твой PoJo, а потом Jackson’ом его будешь выдавать
источник

АБ

Артём Бояршинов... in pro.jvm
Loljeene
А откуда эту информацию по твоему возьмет либа? )
Как я писал выше, мой POJO имеет вид
```
@Data
public class MyPojo {

 private String account;

 @JsonProperty("add_info")
 private String addInfo;
}
```
Здесь уже содержится информация о названии поля и его типе. Это можно вытянуть из класса с помощью рефлексии. Поэтому в теории такая библиотека может существовать
источник

L

Loljeene in pro.jvm
Артём Бояршинов
Как я писал выше, мой POJO имеет вид
```
@Data
public class MyPojo {

 private String account;

 @JsonProperty("add_info")
 private String addInfo;
}
```
Здесь уже содержится информация о названии поля и его типе. Это можно вытянуть из класса с помощью рефлексии. Поэтому в теории такая библиотека может существовать
Так и там и там рефлексия. Почему она в первом случае тебя не устраивает
источник

L

Loljeene in pro.jvm
но устраивает во втором
источник

L

Loljeene in pro.jvm
Почему не написать кастомный  сериалайзер/десериалайзер, если очень хочется?
источник

PA

Pavel Avershin in pro.jvm
Артём Бояршинов
Как я писал выше, мой POJO имеет вид
```
@Data
public class MyPojo {

 private String account;

 @JsonProperty("add_info")
 private String addInfo;
}
```
Здесь уже содержится информация о названии поля и его типе. Это можно вытянуть из класса с помощью рефлексии. Поэтому в теории такая библиотека может существовать
а что тебе мешает сделать ?
 private MyFieldDTO account;
private MyFieldDTO addInfo;
источник