使用JSON数据报错和方法

Posted 浅笑心柔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JSON数据报错和方法相关的知识,希望对你有一定的参考价值。

   今天自己写了一个JSON的例子,可以一调用就出了问题,报下面这个异常:

Java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

上网上搜了一下才知道原来在使用JSON的使用的时候,不光要导入JSON这个包,同时还要导入另外三个包

总之,共需要下面的 jars,json-lib方可使用:

commons-beanutils-1.7.0.jar 

commons-lang-2.1.jar 

ezmorph-1.0.2.jar 

json-lib-1.1-jdk15.jar

 

但是又出现如下问题:

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

导入commons-logging-1.1.1.jar

 

又出现如下问题:

java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.JSONArray

导入commons-collections 3.2

Ok

使用json常用到的包有以下六个。

[c-sharp] view plaincopy
 
  1. commons-logging-1.0.4.jar  
  2. commons-lang-2.3.jar  
  3. commons-collections-3.2.jar  
  4. commons-beanutils-1.7.0.jar  
  5. json-lib-2.2.1-jdk15.jar  
  6. ezmorph-1.0.4.jar  

 

另外如果commons-collections-3.2.jar没有或版本不对的话会出现

org/apache/commons/collections/map/ListOrderedMap这个异常。

 
1、确保导入了jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar包
2、在spring的配置文件中加入<mvc:annotation-driven />这句,它提供了读取jason的支持
3、使用springMVC的@ResponseBody注解@responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
4、在以上配置都正确的情况下,我的项目还是不能返回json串。报错:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ()。
今天终于在一个外文网站找到答案,是由于spring版本的问题引起的。我之前一直用的是3.0.0的版本。就是因为这个版本的问题。于是果断去官网下载3.2版本的,一切正常运行,成功返回json数据。
 
 
spring mvc 避免IE执行AJAX时,返回JSON出现下载文件

<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

<property name="supportedMediaTypes">

<list>

<value>text/html;charset=UTF-8</value>

</list>

</property>

</bean>

 

<!-- 启动spring MVC的注解功能,完成请求和注解POJO的映射 -->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

<property name="messageConverters">

<list>

<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->

</list>

</property>

</bean>

 

去掉 <mvc:annotation-driven/>

 






以上是关于使用JSON数据报错和方法的主要内容,如果未能解决你的问题,请参考以下文章

毕设扫描器参数Fuzz第一篇:数据的定义读取和装配(爬虫数据和Payload数据)

Jquery ajax 请求跨域获取json数据,数据可以获得,但json解析的时候报错,请问有啥方法?

查询复杂对象用respsbody转换成json串时,mybatis的延迟加载报错的解决方法

python json.loads 报错 json.decoder.JSONDecodeError

使用JSON.parse字符串转换json报错解决办法

使用JSON.parse字符串转换json报错解决办法