早期 Java JSON 庫 json-lib 依賴鏈極長,缺一不可。本文整理完整依賴清單,並提供 Spring MVC 返回 JSON 的現代化最佳實踐(推薦 Jackson)。
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-langLogFactory → 缺 commons-loggingJSONArray NoClassDefFoundError → 缺 commons-collectionsListOrderedMap → commons-collections 版本不匹配Maven 依賴:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.0</version>
</dependency>
配置要點:
<mvc:annotation-driven />@ResponseBody 或類上加 @RestControllerIE 不識別 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/> 避免衝突 -->
JsonGenerator/JsonParser)大數據場景優勢明顯json-lib 時代已成歷史,Jackson 成為事實標準。理解依賴傳遞機制、HTTP 內容協商、瀏覽器兼容性,能快速定位並解決 JSON 返回問題。