powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Jersey + JSON. Как отправить в JSON кастомный объект?
14 сообщений из 14, страница 1 из 1
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463499
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую Jetty 9.4 + Jersey 2.25 + (jersey-media-json-jackson). У меня есть такой класс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class ApiResponse<T> {
    private ResponseResult result;
    private T data;

    public ResponseResult getResult() {
        return result;
    }

    public void setResult(ResponseResult result) {
        this.result = result;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}



При поступлении POST-запроса объект вышеприведенного класса отправляется клиенту:
Код: java
1.
return Response.ok(response).build();


Я хочу иметь возможность в поле data хранить разные объекты: массивы, строки, классы. Однако при отправке, например строки, получается такой JSON:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{
  "data": {
    "type": "string",
    "value": "some value"
  },
  "result": {
    "code": 200,
    "message": "Ok",
    "success": true
  }
}


В data указано не просто значение, а объект из 2х полей: type и value. А хотелось бы, чтобы было указано только значение:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
{
  "data":  "some value",
  "result": {
    "code": 200,
    "message": "Ok",
    "success": true
  }
}


Как мне добиться этого?
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463586
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-x,
без дженериков работает?
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463596
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без дженериков так же работает: выдает в data поля type и value.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463611
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-x,
Не совсем красивое решение - объявить
Код: java
1.
Object data
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463618
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulsann-x,
Не совсем красивое решение - объявить
Код: java
1.
Object data



Это и был способ без дженериков. Результат тот же.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463665
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-x,

Jersey подразумевает сериализацию как в одну сторону, так и в другую. Как вы JSON собираетесь обратно в объект собрать, не зная конкретный тип data? Если нужен исклчительно Java to JSON маппинг, возможно, нужно взять другой инструмент.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463669
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

В моем случае Jersey только на сервере. Клиенты будут разномастные, например php. Там, как я понимаю, не будет таких проблем, которые вы затронули.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463670
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. тип data определяется только документацией API.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463673
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-xВ моем случае Jersey только на сервере. Клиенты будут разномастные, например php. Там, как я понимаю, не будет таких проблем, которые вы затронули.
Речь не о том где Jersey, а о том что делать если клиент шлёт этот объект обратно на сервер. А сервер его восстановить уже не может.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463690
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

В общем случае соглашусь в вами. В моем случае нет такого сценария.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463710
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-xВ общем случае соглашусь в вами. В моем случае нет такого сценария.
Да, я понимаю. Но Jackson про это не знает и подобной настройки я там не вижу. Можно попробовать другой сериализатор прикрутить.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463760
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена: я убрал из pom.xml зависимость "jersey-media-moxy". Теперь в data сожердаться любые данные: объеты, строки, массивы без лишних сущностей.
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463761
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sann-x,

Клево. Написал что Jackson, а оказалось MOXy
...
Рейтинг: 0 / 0
Jersey + JSON. Как отправить в JSON кастомный объект?
    #39463779
Фотография sann-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

у меня оба были указаны в пом. Копипаста с прошлого проекта.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Jersey + JSON. Как отправить в JSON кастомный объект?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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