Heim > Fragen und Antworten > Hauptteil
Mit dem von Spring bereitgestellten @ResponseBody
ist es sehr praktisch, das JSON-Objekt zurückzugeben.
Aber ein Problem besteht darin, dass es manchmal unmöglich ist zu bestimmen, ob @ResponseBody
会返回empty(""
)还是null,题主大致观察了一下。好像对于java中的String不管是null
还是""
,最终通过json返回的都是""
,而对于Object,都会返回null
,而对于int型数据都会返回0
leer ("
) oder null zurückgibt. Der Fragesteller hat eine grobe Beobachtung gemacht. Es scheint, dass für String in Java, egal ob es null
oder ""
ist, letztendlich durch JSON ""
zurückgegeben wird, während für Object , wird null
zurückgegeben, und 0
wird für Daten vom Typ int zurückgegeben.
Ist die obige Schlussfolgerung richtig?
phpcn_u15822017-06-14 10:53:24
1.返回POJO时可以将业务数据封装,比如封装成JSONResult类,里面有code,msg,data其中data是业务数据(也就是POJO实例),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的时候不会包含key