Spring Boot 响应实体不返回 JSON

Lea*_*mau 1 java spring json spring-boot

当我从 RestController 返回 POJO 时,它会转换为 JSON 对象。但是当我尝试返回new ResponseEntity<>("success", HttpStatus.CREATED); 控制器时返回纯文本。怎么了?

我的休息控制器:

    @RequestMapping(value = "/register", method = RequestMethod.POST,consumes = "application/json", produces="application/json")
public ResponseEntity<?>  registerUser(@RequestBody User user) throws MessagingException {
    if(registrationService.canRegister(user.getEmail())){
        registrationService.registerUser(user);
        logger.info("Registered user "+user.getEmail());
        return new ResponseEntity<>("success", HttpStatus.CREATED);
    }
    return new ResponseEntity<>(HttpStatus.CONFLICT);
}
Run Code Online (Sandbox Code Playgroud)

我的依赖项:

    <dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-java8</artifactId>
        <version>5.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-jwt</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-oauth2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

Spring引导版本1.4.1

Shi*_*wal 5

"success"因为 String 无法转换为 JSON 格式。因此,spring控制器返回plain/text。通常,对于任何要转换为JSON的对象,它必须是键值对的格式,因此所有POJO都可以转换为相应的键值对,其中是key属性名称和value是财产的价值。您可以查看此页面来验证有效 json 的构成。 https://jsonformatter.curiousconcept.com/

  • 一些示例:http://stackoverflow.com/questions/30895286/spring-mvc-how-to-return-simple-string-as-json-in-rest-controller (2认同)