首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSON 庫依賴地獄完整解決方案:json-lib 完整依賴鏈與 Spring MVC 返回 JSON 最佳實踐

     編輯:Java 綜合教學

JSON 庫依賴地獄完整解決方案:json-lib 完整依賴鏈與 Spring MVC 返回 JSON 最佳實踐

早期 Java JSON 庫 json-lib 依賴鏈極長,缺一不可。本文整理完整依賴清單,並提供 Spring MVC 返回 JSON 的現代化最佳實踐(推薦 Jackson)。

json-lib 完整依賴(6 個核心 JAR)

commons-logging-1.1.1.jar
commons-lang-2.3.jar
commons-collections-3.2.jar
commons-beanutils-1.7.0.jar
json-lib-2.2.1-jdk15.jar
ezmorph-1.0.4.jar

缺包報錯對應表:

  • NestableRuntimeException → 缺 commons-lang
  • LogFactory → 缺 commons-logging
  • JSONArray NoClassDefFoundError → 缺 commons-collections
  • ListOrderedMap → commons-collections 版本不匹配

Spring MVC 返回 JSON 現代方案(推薦 Jackson)

Maven 依賴:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.0</version>
</dependency>

配置要點:

  1. Spring 配置啟用註解驅動:<mvc:annotation-driven />
  2. 控制器方法加 @ResponseBody 或類上加 @RestController
  3. 確保 Spring 版本 ≥ 3.2(3.0.x 有 Bug 導致 406 錯誤)

解決 IE 下載 JSON 文件問題

IE 不識別 application/json,需配置消息轉換器強制 text/html:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list><value>text/html;charset=UTF-8</value></list>
                </property>
            </bean>
        </list>
    </property>
</bean>
<!-- 移除 <mvc:annotation-driven/> 避免衝突 -->

遷移建議

  • 新項目:直接使用 Jackson/Gson,勿用 json-lib
  • 老項目:漸進式替換,優先替換 Controller 層序列化邏輯
  • 性能:Jackson 流式 API(JsonGenerator/JsonParser)大數據場景優勢明顯

總結

json-lib 時代已成歷史,Jackson 成為事實標準。理解依賴傳遞機制、HTTP 內容協商、瀏覽器兼容性,能快速定位並解決 JSON 返回問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved