Я перепробовал много сообщений, найденных в сети, прежде чем писать этот вопрос.
Я хотел бы получить частичный ответ JSON в моем веб-сервисе REST. Фрист, я пытался вернуть JSONArray, но у меня
"No converter found for return value of type: class org.json.JSONArray"
Затем я попытался вернуть список JSONObject, я получил
"com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0])"
Когда я устанавливаю для SerializationFeature.FAIL_ON_EMPTY_BEANS значение false в моем application.properties, я получаю список пустых объектов JSONObject, например: {}
Я делюсь с вами своим кодом на GitHub: https://github.com/AbderrahmenISSA/StockManagement/blob/master/src/main/java/com/stockmgt/controllers/v3/ProductControllerV3.java
Я уже использую DTO. Проблема в том, что она динамическая: - один пользователь может получить только одно поле: / products? Select = productName - другой вызов: / products? Select = productName, productCode - еще один: /products?select=productName,productCode,category.categoryNa Меня -... Итак, мы не можем создать столько DTO, сколько возможных комбинаций




в вашем DTO установите для атрибутов, которые вы не хотите получать, значение NULL. (сделайте это по простому алгоритму)
затем настройте сериализатор, чтобы он не включал нулевые поля в ответ json. (иногда это поведение по умолчанию)
Если под частичным ответом json вы имеете в виду, например, просто включение некоторых атрибутов объекта, то, как я обнаружил, менее безболезненным является наличие отдельных DTO (объектов передачи данных), реализованных как классы с общедоступными членами и без методов. Если вы не знаете, что такое DTO, погуглите, о нем много материала (за и против).