

SpringBootを使用して以下のようなエンドポイントとレスポンスを立てています。

endpoint

[code]

    http://localhost:8080/member
    
[/code]

想定しているResponseのJSON

[code]

    [
      {
        "memberId": "abc1",
        "isTestUser": false
      },
      {
        "memberId": "abc1",
        "isTestUser": false
      }
    ]
    
    
[/code]

しかしAPIを実行すると下記のようなResponseが帰ってきます。(isがなくなっている)

[code]

    [
      {
        "memberId": "abc1",
        "testUser": false
      },
      {
        "memberId": "abc1",
        "testUser": false
      }
    ]
    
[/code]

簡単ですがControllerのソースコードはこのようになっています。

[code]

    @GetMapping("/member")
    fun get(): ResponseEntity<Any> {
      try {
          val response: List<Member> = service.get()
              
          return ResponseEntity(response.member, response.status)
      } catch (e: Exception) {
          
      return ResponseEntity(Response("取得に失敗しました。"), 400)
      }
    }
    
    class Member(
        val id: String,
        val isTestUser: Boolean,
    )
    
[/code]

こちらどなたか詳しい方いらっしゃいましたらアドバイスいただきたいです。


CC BY-SA 4.0
2022-10-20T08:27:28.617
91693
2022-10-23T06:10:53.310
30328
question
java spring spring-boot kotlin
Springで立てたAPIのResponseのプロパティ名が変わる


下記リンク先の解説の通り、`jackson-module-kotlin` バージョン `2.10.0` 以前(Spring Boot バージョン
`2.2.1` 以前) でそのような事象になります。

`jackson-module-kotlin` のバージョンアップを行うことで、所望の動作になるでしょう。

  * [jackson-module-kotlin の 2.10.0 と 2.10.1 でデフォルトの挙動が異なる - abcdefg.....](https://pppurple.hatenablog.com/entry/2021/01/31/203625)
  * [【解決済】Jackson+Kotlinでisで始まる名前のBoolean型プロパティが正しくシリアライズされない | のりおが思考停止するブログ](https://blog.norio.io/it/programming/boolean-with-jackson-kotlin/)


CC BY-SA 4.0
2022-10-23T03:31:05.743
91754
2022-10-23T06:10:53.310
2022-10-23T06:10:53.310
2808
2808
91693
answer