

◆Controller

[code]

    @RestController
    @ResponseBody
    public class TestController {
    
        @RequestMapping(path = "/test", method = RequestMethod.GET)
        public List<TestDto> test(HttpServletRequest request) {
            System.out.println(request.getRequestURL().toString())
    
            TestDtoリストを取得する
    
            return dto;
        }
    }
    
[/code]

◆DTO

[code]

    @Getter
    @Setter
    public class TestDto implements Serializable {
    
        private static final long serialVersionUID = -xxxxxxxL;
    
        private String TestName;
    
        private String TestComment;
    
    }
    
[/code]

◆JSON

[code]

    {
      {
        "testName": "testA",
        "testComment": "testAです"
      },
      {
        "testName": "testB",
        "testComment": "testBです"
      }
    }
    
[/code]

上記のようにJSONにはなるものの、キーの先頭が小文字になっていたため、以下を参考にDTOを変更しました。  
<http://blog.soushi.me/entry/2016/12/29/134940>

◆DTO

[code]

    import com.fasterxml.jackson.annotation.JsonProperty;★
    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    @ToString
    public class TestDto implements Serializable {
    
        private static final long serialVersionUID = -xxxxxxxL;
    
        @JsonProperty("TestName")★
        private String TestName;
    
        @JsonProperty("TestComment")★
        private String TestComment;
    }
    
[/code]

そうすることでキーは「@JsonProperty」で指定した値で取得できるようになったのですが、  
JSON内に先頭が小文字のものと「@JsonProperty」で指定したものの二通りが取得できるようになってしまいました。  
「@JsonProperty」の使い方でなにか悪い箇所がありますでしょうか？

◆JSON

[code]

    {
      {
        "TestName": "testA",
        "TestComment": "testAです",
        "testName": "testA",
        "testComment": "testAです"
      },
      {
        "TestName": "testB",
        "TestComment": "testBです",
        "testName": "testB",
        "testComment": "testBです"
      }
    }
    
[/code]


CC BY-SA 3.0
2018-01-29T04:22:03.490
41275
2018-01-29T04:22:03.490
12842
question
json spring-boot
Springbootの@JsonPropertyで指定したキーでJSONを返したい