Jackson解析JavaBean空值不顯示問題

swagger-ui和jersey集成時,發現一個問題。如果JavaBean實例成員變量爲空時,返回的json 中無此成員。

之前使用配置是:

<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
          com.wordnik.swagger.jaxrs.json,
          com.mzl.ws.rest
      </param-value>
</init-param>



後來調整下

<!-- 
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
          com.wordnik.swagger.jaxrs.json,
          com.mzl.ws.rest
      </param-value>
</init-param>
-->
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.mzl.ws.rest.RestApplication</param-value>
</init-param>
package com.mzl.ws.rest;

import org.glassfish.jersey.server.ResourceConfig;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;



publicclass RestApplication extends ResourceConfig {
    public RestApplication() {
    System.out.println("----XXX2-----");
//        //服務類所在的包路徑
        packages("com.mzl.ws.rest");
//        //註冊JSON轉換器
        register(JacksonJsonProvider.class);
    
       }
   }


問題,解決了。
需要注意的是,不要使用swagger提供的Jackson生成json工具。如下:

package com.mzl.ws.rest;

import org.glassfish.jersey.server.ResourceConfig;

import com.wordnik.swagger.jaxrs.json.JacksonJsonProvider;


publicclass RestApplication extends ResourceConfig {
    public RestApplication() {
    System.out.println("----XXX2-----");
//        //服務類所在的包路徑
        packages("com.mzl.ws.rest");
//        //註冊JSON轉換器
        register(JacksonJsonProvider.class);
    
       }
   }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章