swagger不显示API列表问题
- 问题描述
- Springboot 集成swagger,浏览器开启访问 http://localhost:7801/swagger-ui.html#/ 页面不出现api列表.
- 打开浏览器控制台发现有springfox.js报错。发下如下图75行出现Json解析错误。排查发现 Js解析Json层数不对。

方案
修改springboot Json序列化格式
- 添加pom (gson 和如下jar)
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.11</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
- 配置序列化
package com.wh.config;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import springfox.documentation.spring.web.json.Json;
import java.lang.reflect.Type;
public class SpringfoxJsonToGsonAdapter implements JsonSerializer<Json> {
@Override
public JsonElement serialize(Json json, Type type, JsonSerializationContext context) {
final JsonParser parser = new JsonParser();
return parser.parse(json.value());
}
}
访问swagger-ui界面404
检查下pom文件 是否少引用ui包
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
swagger出现弹窗

解决办法: 在启动的类上加上@EnableSwagger2注解