2016-07-31 3 views
0

PUT 요청에서 JSON 개체를 내 서버로 전달 중입니다. 요청 자체는 작동하지만 밑줄이있는 JSON의 필드 (snake_case)는 무시됩니다. 요청은 수신 된 데이터를 출력하여 무엇이 나오는 지 확인하고 밑줄이있는 값은 camelCase로 변환되어 파싱되지 않습니다. 여기서 클래스는 다음과 같습니다저지 MOXy 구문 분석 안 함 snake_case

Public User{ 

private int id; 
private String name; 
private int some_value; 

} 

나는 PUT 요청에 전달하는 JSON 개체 : put 메소드는 목시는이 경우

@PUT 
@Path("user") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public User addUser(User user){ 
    return user; 
} 

에서 잡은 그리고 출력이 무엇인지를 반환

{ "id":1, "name":John, "some_value":5 } 

:

{ "id":1, "name":John, "someValue":0 } 

"some_value"가 "someValue"로 변경되고 실제 값이 업데이트되지 않은 것에 유의하십시오. 왜 이런 일이 벌어지고 있는지에 대한 아이디어가 있습니까?

답변

1

MOXy는 기본적으로 Java Bean 규칙을 따르므로 낙타의 경우를 제안합니다. 당신이 낙타 케이스를 사용하려면 (또는 할 수없는)하지 않는 경우, 당신은 필드에 주석을 추가 할 수 있습니다 귀하의 모든 필드에 주석을 원하지 않는 경우

@XmlElement(name = "some_value") 
private int some_value; 

, XMLNameTransformer을 사용합니다.

+0

문제의 절반이 처리되었으므로 값이 업데이트됩니다. 그러나 출력물에는 여전히 camelCase가 표시됩니다. 그 문제를 해결하는 방법에 대한 아이디어가 있습니까? 아니면 그걸로 가야만할까요? – Flopn

+0

'@XmlElement' 주석은 읽기와 쓰기 모두에 적용되어야합니다. 그래서 문제가 다른 곳에서 발생해야한다고 생각합니다. 도움이 더 필요하면 [MCVE] (https://stackoverflow.com/help/mcve)를 게시 해보십시오. –

+0

실제로 이것은 작동하지 않습니다. 그것은 기존의 JSON에 "some_value"라는 필드를 추가합니다. 이제는 그 값과 "someValue"를 가지지 만 전달 된 값은 – Flopn

관련 문제