2016-10-08 10 views
1

RestControllerからPOJOを返すと、JSONオブジェクトで変換されます。 しかし、私が返そうとするとnew ResponseEntity<>("success", HttpStatus.CREATED); コントローラはプレーンテキストを返します。どうしましたか?スプリングブートレスポンスエンティティがJSONを返さない

マイRestController:

​​

私の依存関係:Stringとして

<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> 

春ブーツバージョン1.4.1

答えて

3

"success"はJSON形式にキャストすることはできません。通常、JSONとしてキャストされるオブジェクトの場合は、キー値のペアの形式でなければならないため、すべてのPOJOを対応するキーと値のペアに変換できます。keyはプロパティ名ですvalueはプロパティの値です。このページを見て、有効なjsonを構成するものを検証することができます。 https://jsonformatter.curiousconcept.com/

+1

上記の回答に追加するには、単に成功文字列を送信するために新しいPOJOを作成したくない場合は、Mapを作成し、値が成功したキーを追加することができます。 –

+0

@ rolson-quadras正確に私が探していたことをありがとう –

+1

いくつかの例:http://stackoverflow.com/questions/30895286/spring-mvc-how-to-return-simple-string-as-json-in-レストコントローラ –

0

ちょうど同じ問題を抱えていたし、それを解決するためのまともな方法を見つけた:

KeyValuePair value = new KeyValuePair("additionalAdress", user.getAdditionalEmail()); 

return new ResponseEntity<>(value, HttpStatus.OK); 

とフロントエンドに(私の場合には、それは2 /活字体角度だ)あなたが値に以下の方法を得ることができます。

this.userService.updateAdditionalEmailOfCurrUser(this.additionalEmail).subscribe((res: any) => { 
     // handle success case here 
     this.additionalEmail = res.value;    
    }, 
    () => { 
     // handle error case here 
    }); 
関連する問題