Heim  >  Fragen und Antworten  >  Hauptteil

java - Wie kann festgestellt werden, ob Null oder Leer zurückgegeben wird, wenn Spring JSON zurückgibt?

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?

ringa_leeringa_lee2707 Tage vor969

Antworte allen(3)Ich werde antworten

  • 阿神

    阿神2017-06-14 10:53:24

    这个跟你的pojo中的实例变量类型和使用的json库有关(json库可以设置对null如何处理)

    Antwort
    0
  • phpcn_u1582

    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对象中。

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-14 10:53:24

    如果使用的Jackon库的话可以再pojo上面注解@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL),这样的话如果某个属性值为null或者"",则序列化为json的时候不会包含key

    Antwort
    0
  • StornierenAntwort