spring에서 제공하는 @ResponseBody
를 사용하면 json 객체를 반환하는 것이 매우 편리합니다.
그러나 한 가지 문제는 @ResponseBody
会返回empty(""
)还是null,题主大致观察了一下。好像对于java中的String不管是null
还是""
,最终通过json返回的都是""
,而对于Object,都会返回null
,而对于int型数据都会返回0
가 공백(""
)을 반환할지 아니면 null을 반환할지 판단하는 것이 불가능하다는 것입니다. 질문자는 대략적으로 관찰했습니다. Java의 String의 경우 null
이든 ""
이든 관계없이 json을 통해 최종적으로 반환되는 것은 ""
인 반면 Object의 경우 이면 null
이 반환되고 int 유형 데이터의 경우 0
이 반환됩니다.
위의 결론이 맞나요?
阿神2017-06-14 10:53:24
이것은 pojo의 인스턴스 변수 유형 및 사용된 json 라이브러리와 관련이 있습니다(json 라이브러리는 null 처리 방법을 설정할 수 있음)
phpcn_u15822017-06-14 10:53:24
1. POJO를 반환할 때 코드, 메시지 및 데이터가 포함된 JSONResult 클래스로 비즈니스 데이터를 캡슐화할 수 있습니다. Data는 비즈니스 데이터(즉, POJO 인스턴스)이고, code는 상태입니다. code이고 msg는 설명이므로 비즈니스 데이터로 사용할 수 있습니다. 비어 있는 경우 오류 코드만 반환하면 반환된 결과는 여전히 인터페이스 호출자가 처리하기에 편리한 json 형식 데이터입니다. .
2. JSON 형식 데이터를 직접 반환하고, fastjson 또는 net.sf.json을 사용하여 JSONObject 개체를 직접 반환하고, 비즈니스 데이터를 JSONObject 개체에 수동 또는 자동으로 채웁니다.
伊谢尔伦2017-06-14 10:53:24
Jackon 라이브러리를 사용하는 경우 pojo에 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)를 주석으로 추가할 수 있습니다. 이 경우 특정 속성 값이 null 또는 ""인 경우 직렬화 시 키가 포함되지 않습니다. json