1. ホーム
  2. java

[解決済み] Spring MVC - Restコントローラで単純な文字列をJSONとして返す方法

2022-04-24 05:14:46

質問

私の質問は、基本的に、以下のフォローアップです。 これ の質問をします。

@RestController
public class TestController
{
    @RequestMapping("/getString")
    public String getString()
    {
        return "Hello World";
    }
}

上記の場合、Springはレスポンスボディに"Hello World"を追加することになります。JSONのレスポンスとしてStringを返すにはどうしたらよいでしょうか? 引用符を付ければいいのはわかるが、それはハックに近い気がする。

この概念を説明するのに役立つ例があれば教えてください。

HTTP レスポンスボディに直接書き込まずに、JSON 形式の文字列を返したいのです (コントローラで で レスティGWT これは、レスポンスが有効なJSONであることを必要とします。 の形式)を使用します。

解決方法は?

どちらか一方を返す text/plain (のように Spring MVC 3 コントローラから文字列メッセージのみを返します。 ) または、文字列を何らかのオブジェクトでラップする

public class StringResponse {

    private String response;

    public StringResponse(String s) { 
       this.response = s;
    }

    // get/set omitted...
}



レスポンスタイプを設定する MediaType.APPLICATION_JSON_VALUE (= "application/json" )

@RequestMapping(value = "/getString", method = RequestMethod.GET,
                produces = MediaType.APPLICATION_JSON_VALUE)

というようなJSONができあがります。

{  "response" : "your string value" }