从你的 pom.xml
文件中可以看到,项目明确依赖了以下 JSON 库:
-
FastJSON:
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </dependency>
-
Gson:
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version> </dependency>
-
Spring Boot 默认的 Jackson:
- 由于项目中包含了
spring-boot-starter-web
依赖,Spring Boot 默认会引入 Jackson 作为 JSON 库:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>
- 由于项目中包含了
总结
你的项目同时依赖了以下 JSON 库:
- FastJSON(
com.alibaba:fastjson
) - Gson(
com.google.code.gson:gson
) - Jackson(通过
spring-boot-starter-web
引入)
如何选择使用哪个 JSON 库
-
FastJSON:
- 如果你的代码中使用了
com.alibaba.fastjson.JSON
或相关类,说明你在使用 FastJSON。 - 例如:
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject;
- 如果你的代码中使用了
-
Gson:
- 如果你的代码中使用了
com.google.gson.Gson
或相关类,说明你在使用 Gson。 - 例如:
import com.google.gson.Gson;
- 如果你的代码中使用了
-
Jackson:
- 如果你的代码中使用了
com.fasterxml.jackson.databind.ObjectMapper
或相关类,说明你在使用 Jackson。 - 例如:
import com.fasterxml.jackson.databind.ObjectMapper;
- 如果你的代码中使用了
建议
-
推荐使用 Jackson:
- 由于 Spring Boot 默认使用 Jackson,并且 Jackson 是 Spring 生态中的首选 JSON 库,推荐优先使用 Jackson。
- 如果你没有特别的需求,可以移除 FastJSON 和 Gson 的依赖,避免引入不必要的依赖冲突。
-
移除不必要的 JSON 库:
- 如果你决定使用 Jackson,可以从
pom.xml
中移除 FastJSON 和 Gson 的依赖:<!-- 移除 FastJSON --> <!-- <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </dependency> --><!-- 移除 Gson --> <!-- <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version> </dependency> -->
- 如果你决定使用 Jackson,可以从
-
统一 JSON 库:
- 如果项目中已经大量使用了 FastJSON 或 Gson,建议统一使用其中一个库,避免混用导致代码风格不一致。
如何检查代码中使用的 JSON 库
-
搜索代码中的 JSON 工具类:
- 在项目中搜索以下类:
- FastJSON:
com.alibaba.fastjson.JSON
- Gson:
com.google.gson.Gson
- Jackson:
com.fasterxml.jackson.databind.ObjectMapper
- FastJSON:
- 在项目中搜索以下类:
-
查看导入语句:
- 打开代码文件,查看导入的 JSON 相关类。
-
检查 JSON 解析代码:
- 查看代码中是否有类似以下的 JSON 解析逻辑:
- FastJSON:
JSONObject jsonObject = JSON.parseObject(jsonString);
- Gson:
Gson gson = new Gson(); MyObject obj = gson.fromJson(jsonString, MyObject.class);
- Jackson:
ObjectMapper objectMapper = new ObjectMapper(); MyObject obj = objectMapper.readValue(jsonString, MyObject.class);
- FastJSON:
- 查看代码中是否有类似以下的 JSON 解析逻辑:
总结
- 你的项目同时依赖了 FastJSON、Gson 和 Jackson。
- 推荐优先使用 Jackson,因为它是 Spring Boot 的默认 JSON 库。
- 如果不需要 FastJSON 和 Gson,可以从
pom.xml
中移除它们的依赖。 - 检查代码中使用的 JSON 工具类,确保统一使用一个 JSON 库。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.productQualification</groupId><artifactId>productQualification</artifactId><version>0.0.1-SNAPSHOT</version><name>productQualification</name><description>project root</description><packaging>pom</packaging><properties><java.version>1.8</java.version></properties><modules><module>api</module><module>common</module><module>resource</module><module>user</module></modules><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>com.vaadin.external.google</groupId><artifactId>android-json</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-miniapp</artifactId><version>4.2.4.B</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.16</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.3</version></dependency><dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form</artifactId><version>3.5.0</version></dependency><dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form-spring</artifactId><version>3.5.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId></dependency><!-- 有赞sdk --><!--<dependency><groupId>com.youzan.cloud</groupId><artifactId>open-sdk-core</artifactId><version>1.0.7-RELEASE</version></dependency><dependency><groupId>com.youzan.cloud</groupId><artifactId>open-sdk-gen</artifactId><version>1.0.7.202003242151-RELEASE</version></dependency>--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.8.3</version></dependency><!--部署成war包时开启【同时支持war和jar启动部署】↓↓↓↓--><!--<dependency>--><!--<groupId>org.springframework.boot</groupId>--><!--<artifactId>spring-boot-starter-tomcat</artifactId>--><!--<scope>provided</scope>--><!--</dependency>--><!--<dependency>--><!--<groupId>org.apache.tomcat.embed</groupId>--><!--<artifactId>tomcat-embed-jasper</artifactId>--><!--<scope>provided</scope>--><!--</dependency>--><!--部署成war包时开启【同时支持war和jar启动部署】↑↑↑↑--><!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java --><dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.9.0</version><exclusions><exclusion><artifactId>slf4j-api</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>slf4j-simple</artifactId><groupId>org.slf4j</groupId></exclusion><exclusion><artifactId>okhttp</artifactId><groupId>com.squareup.okhttp3</groupId></exclusion></exclusions></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.0</version></dependency><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.6.20</version></dependency><!-- https://mvnrepository.com/artifact/com.google.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version></dependency><!-- html 转 png --><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.9</version></dependency></dependencies><repositories><repository><id>baymax-releases</id><name>Nexus Release Repository</name><url>http://maven.youzanyun.com/repository/maven-releases/</url></repository></repositories><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Greenwich.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement></project>