从你的 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>
复制