Как настроить сериализацию JSON пользовательских объектов в Spring Boot - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть MapResult и TestController, как показано ниже.

// MapResult.java
public class MapResult(){
    // map saves the data I need
    private Map<String, Object> map = new HashMap<>();

    public void prop(String name, Object value){
        map.put(name, value);
        return this;
    }
    // ... other methods and properties
}


// TestController.java

@GetMapping("/test")
MapResult test() {
   return new MapResult().prop("name", "AAA").prop("age", 20);
}

Как получить ответ /test в формате {"name":"AAA","age":20}?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Ниже приведен TestModel, который имеет Map в качестве свойства

public class TestModel {
    private Map<String, Object> map = new HashMap<>();

    public void prop(String name, Object value){
        map.put(name, value);
        return;
    }

    public Map<String, Object> getProp(){
        return map;
    }
}

и карту вызовов из класса выше из контроллера, как показано ниже

@RestController
public class DummyController {
    @GetMapping("/test")
    public Map<String, Object> test() {
        TestModel t = new TestModel();
        t.prop("name", "AAA");
        t.prop("age", 20);

        return t.getProp();
    }
}

Тогда он выдаст вам результат как {"name ":" AAA "," age ": 20} после звонка / теста

0 голосов
/ 11 февраля 2020

Вы можете попробовать использовать ResponseEntity . Вместо того, чтобы возвращать MapResult, непосредственно создайте новый ResponseEntity из MapResult и заставьте ваш контроллер возвращать эту сущность ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...