`

java 转json 报错处理机制 案例 .

    博客分类:
  • java
阅读更多
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。



报错处理机制

commons-beanutils-1.8.0.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean

commons-collections.jar 不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap

commons-lang-2.4.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException

commons-logging-1.1.1.jar不加这个包
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

ezmorph-1.0.4.jar不加这个包
java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher

json-lib-2.3-jdk15.jar不加这个包
java.lang.NoClassDefFoundError: net/sf/json/JSONObject


我把这段代码拿到junit下测试 就报错了。java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException错误,查了下原因原来是少了3个包。因为我在使用json的时候只导入了json-lib-2.1.jar这个包 但是程序还需要这4个包:
commons-beanutils-1.7.0.jar

commons-collections-3.2.jar

commons-lang-2.1.jar
ezmorph-1.0.2.jar
导入之后就发现 OK了。


下载地址:http://json-lib.sourceforge.net/
还要需要的第3方包:
org.apache.commons(3.2以上版本)
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)
nu.xom



1、List
Java代码 
boolean[] boolArray = new boolean[]{true,false,true};     
           JSONArray jsonArray1 = JSONArray.fromObject( boolArray );     
           System.out.println( jsonArray1 );     
           // prints [true,false,true]    
             
           List list = new ArrayList();     
           list.add( "first" );     
           list.add( "second" );     
           JSONArray jsonArray2 = JSONArray.fromObject( list );     
           System.out.println( jsonArray2 );     
           // prints ["first","second"]    
 
           JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );     
           System.out.println( jsonArray3 );     
           // prints ["json","is","easy"]    

boolean[] boolArray = new boolean[]{true,false,true};  
            JSONArray jsonArray1 = JSONArray.fromObject( boolArray );  
            System.out.println( jsonArray1 );  
            // prints [true,false,true] 
           
            List list = new ArrayList();  
            list.add( "first" );  
            list.add( "second" );  
            JSONArray jsonArray2 = JSONArray.fromObject( list );  
            System.out.println( jsonArray2 );  
            // prints ["first","second"] 

            JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );  
            System.out.println( jsonArray3 );  
            // prints ["json","is","easy"]  

2、Map
Java代码 
Map map = new HashMap();     
         map.put( "name", "json" );     
         map.put( "bool", Boolean.TRUE );     
           
         map.put( "int", new Integer(1) );     
         map.put( "arr", new String[]{"a","b"} );     
         map.put( "func", "function(i){ return this.arr[i]; }" );     
         JSONObject json = JSONObject.fromObject( map );     
         System.out.println( json );     
         //{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true} 

Map map = new HashMap();  
         map.put( "name", "json" );  
         map.put( "bool", Boolean.TRUE );  
        
         map.put( "int", new Integer(1) );  
         map.put( "arr", new String[]{"a","b"} );  
         map.put( "func", "function(i){ return this.arr[i]; }" );  
         JSONObject json = JSONObject.fromObject( map );  
         System.out.println( json );  
         //{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true}

3、BEAN
Java代码 
/** 
     * Bean.java  
        private String name = "json";    
        private int pojoId = 1;    
        private char[] options = new char[]{'a','f'};    
        private String func1 = "function(i){ return this.options[i]; }";    
        private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];"); 
    */   
JSONObject jsonObject = JSONObject.fromObject( new JsonBean() );     
System.out.println( jsonObject );     
//{"func1":function(i){ return this.options[i]; },"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }}   

/**
     * Bean.java
        private String name = "json";  
        private int pojoId = 1;  
        private char[] options = new char[]{'a','f'};  
        private String func1 = "function(i){ return this.options[i]; }";  
        private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");
    */
JSONObject jsonObject = JSONObject.fromObject( new JsonBean() );  
System.out.println( jsonObject );  
//{"func1":function(i){ return this.options[i]; },"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }} 

4、BEANS
Java代码 
/** 
      * private int row ; 
          private int col ; 
          private String value ; 
      * 
      */ 
List list = new ArrayList();  
         JsonBean2 jb1 = new JsonBean2();  
         jb1.setCol(1);  
         jb1.setRow(1);  
         jb1.setValue("xx");  
           
         JsonBean2 jb2 = new JsonBean2();  
         jb2.setCol(2);  
         jb2.setRow(2);  
         jb2.setValue("");  
           
           
         list.add(jb1);  
         list.add(jb2);  
           
         JSONArray ja = JSONArray.fromObject(list);  
         System.out.println( ja.toString() );  
         //[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}] 

/**
      * private int row ;
          private int col ;
          private String value ;
      *
      */
List list = new ArrayList();
         JsonBean2 jb1 = new JsonBean2();
         jb1.setCol(1);
         jb1.setRow(1);
         jb1.setValue("xx");
        
         JsonBean2 jb2 = new JsonBean2();
         jb2.setCol(2);
         jb2.setRow(2);
         jb2.setValue("");
        
        
         list.add(jb1);
         list.add(jb2);
        
         JSONArray ja = JSONArray.fromObject(list);
         System.out.println( ja.toString() );
         //[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]

5、String to bean
Java代码 
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";     
JSONObject jsonObject = JSONObject.fromString(json);     
Object bean = JSONObject.toBean( jsonObject );     
assertEquals( jsonObject.get( "name" ), PropertyUtils.getProperty( bean, "name" ) );     
  assertEquals( jsonObject.get( "bool" ), PropertyUtils.getProperty( bean, "bool" ) );     
  assertEquals( jsonObject.get( "int" ), PropertyUtils.getProperty( bean, "int" ) );     
   assertEquals( jsonObject.get( "double" ), PropertyUtils.getProperty( bean, "double" ) );     
   assertEquals( jsonObject.get( "func" ), PropertyUtils.getProperty( bean, "func" ) );     
  List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) );     
  assertEquals( expected, (List) PropertyUtils.getProperty( bean, "array" ) );   

String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";  
JSONObject jsonObject = JSONObject.fromString(json);  
Object bean = JSONObject.toBean( jsonObject );  
assertEquals( jsonObject.get( "name" ), PropertyUtils.getProperty( bean, "name" ) );  
  assertEquals( jsonObject.get( "bool" ), PropertyUtils.getProperty( bean, "bool" ) );  
  assertEquals( jsonObject.get( "int" ), PropertyUtils.getProperty( bean, "int" ) );  
   assertEquals( jsonObject.get( "double" ), PropertyUtils.getProperty( bean, "double" ) );  
   assertEquals( jsonObject.get( "func" ), PropertyUtils.getProperty( bean, "func" ) );  
  List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) );  
  assertEquals( expected, (List) PropertyUtils.getProperty( bean, "array" ) ); 


Java代码 
String json = "{\"value\":\"xx\",\"row\":1,\"col\":1}";     
JSONObject jsonObject = JSONObject.fromString(json);  
  JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class );     
   assertEquals( jsonObject.get( "col" ),new Integer( bean.getCol())  );     
     assertEquals( jsonObject.get( "row" ), new Integer( bean.getRow() ) );     
     assertEquals( jsonObject.get( "value" ), bean.getValue() );   

String json = "{\"value\":\"xx\",\"row\":1,\"col\":1}";  
  JSONObject jsonObject = JSONObject.fromString(json);
   JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class );  
    assertEquals( jsonObject.get( "col" ),new Integer( bean.getCol())  );  
      assertEquals( jsonObject.get( "row" ), new Integer( bean.getRow() ) );  
      assertEquals( jsonObject.get( "value" ), bean.getValue() ); 


6  json to xml
1)
JSONObject json = new JSONObject( true ); 
String xml = XMLSerializer.write( json ); 

<o class="object" null="true"> 

2)
JSONObject json = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}"); 
String xml = XMLSerializer.write( json ); 
<o class="object"> 
   <name type="string">json</name> 
   <bool type="boolean">true</bool> 
   <int type="number">1</int> 
</o> 
   <o class="object">
      <name type="string">json</name>
      <bool type="boolean">true</bool>
      <int type="number">1</int>
   </o>
3)
JSONArray json = JSONArray.fromObject("[1,2,3]"); 
String xml = XMLSerializer.write( json ); 
<a class="array">
   <e type="number">1</e> 
   <e type="number">2</e> 
   <e type="number">3</e> 
</a> 

7 、xml to json
<a class="array"> 
  <e type="function" params="i,j"> 
      return matrix[i][j]; 
  </e> 
</a> 
   <a class="array">
     <e type="function" params="i,j">
         return matrix[i][j];
     </e>
   </a>
  
JSONArray json = (JSONArray) XMLSerializer.read( xml ); 
System.out.println( json ); 
// prints [function(i,j){ return matrix[i][j]; }] 



在Java中加上这几个包

实例:

import java.io.IOException;
import java.util.ArrayList;
import java.sql.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import aa.JsonBean2;


public class main extends HttpServlet {

 
public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 
  List list = new ArrayList();
  JsonBean2 jb1 = new JsonBean2();
  jb1.setA(1);
  jb1.setB("丁龙飞");
  System.out.println("*****123");
  Date c=new Date(100,9,10);
  String s=c.toString();
  System.out.println(s+"33333");
  jb1.setC(s);
  JsonBean2 jb2 = new JsonBean2();
  jb2.setA(1);
  jb2.setB("b");
  jb2.setC(s);
  list.add(jb1);
  list.add(jb2);
  JSONObject obj= JSONObject.fromObject(jb1);
  System.out.println(obj.toString()+"*****123");
  JSONArray ja = JSONArray.fromObject(list);
  System.out.println(ja.toString()+"-------------");
  System.out.println("asdfasdf");
// List list=new ArrayList();
  String a="var a=[[1,{text:'ext'},{text:'q'},1,'132','321','2008-01-01 12:01:01'],[2,{text:'ext'},{text:'w'},2,'132','321','2008-01-01 12:01:01']]"; 
  response.getWriter().print(a);
 
}

 
public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

   doGet(request, response);
}

}
分享到:
评论

相关推荐

    net.sf.json.JSONObject依赖库.zip

    `fromObject`和`toBean`方法分别实现了从Java对象到JSON对象和从JSON对象到Java对象的转换,这在处理JSON数据和Java业务对象间的数据交换时非常有用。 在处理JSON数组时,`net.sf.json.JSONArray`类提供了类似的...

    spring+Mybatis+ PageHelper实现分页

    在本案例中,Spring将作为整个应用的框架,管理和配置我们的组件,包括Mybatis的数据访问层。 然后是`Mybatis`,它是一个轻量级的持久层框架,与传统的ORM框架相比,Mybatis更加灵活。Mybatis允许开发者编写SQL语句...

    Java解析JSON数据时报错问题解决方案

    然而,解析JSON数据时可能会遇到各种报错情况。本篇将深入探讨一个具体的Java解析JSON数据时报错问题及其解决方案。 一、问题背景 在实际项目测试阶段,测试人员发现后台日志频繁出现JSON解析错误。错误信息提示,...

    Android应用源码之android与asp.net中的一般处理程序ashx进行交互_ashx.zip

    ```java Gson gson = new Gson(); MyResponse response = gson.fromJson(inputStreamReader, MyResponse.class); ``` 为了提高性能和简化代码,可以考虑使用第三方库如Retrofit,它提供了更高级别的抽象,使网络...

    ajax跨域访问WCP搜索,返回JSON数据

    在本案例中,可能使用了JSONP(JSON with Padding)来解决跨域问题,因为JSONP是一种在不支持CORS的旧版浏览器中实现跨域请求的常见方法。 JSONP的工作原理是利用`&lt;script&gt;`标签不受同源策略限制的特点,通过动态...

    接口开发、springboot、接口转发、前端直接调用图床API时我们发现会报错,编写一个后端接口进行代理即可解决,已实现的例子

    Java I/O(输入/输出)提供了读取和写入文件的基本机制。在文件转发的过程中,我们需要使用Java I/O来处理文件的读写。 ##### 6. UUID类 UUID类提供了一种生成全局唯一标识符的方式。在文件上传场景中,为了避免...

    宇视科技门禁系统对外接口文档说明(宇视科技).docx

    综上所述,宇视科技门禁系统对外接口文档提供了丰富的接口使用指南和应用场景案例,不仅覆盖了从基础概念到高级应用的各个方面,还针对常见问题给出了具体的解决策略。通过对这些知识点的学习与实践,可以帮助用户更...

    Ajax报错400的参考解决办法

    如案例中提到的,修改了模型类并添加了带参数的构造函数后,如果未提供无参构造函数,Spring MVC可能无法正确地实例化对象。这是因为Spring MVC依赖于默认的无参构造函数来创建对象并填充来自请求的数据。 解决...

    Python web接口开发与测试

    1.5 程序报错处理:对常见的Python程序错误类型进行分析,如缩进错误、引包错误、编码错误等。 2. Django框架 2.1 Django开发环境:讲解在Windows和Ubuntu下安装Django的方法。 2.2 Django入门:从创建项目与...

    视频会议Android版

    开发者需要熟悉Java或Kotlin语言,这是Android应用的主要编程语言。此外,对于大型项目,理解模块化和组件化开发思路也非常重要,这有助于代码的管理和维护。 描述中的"博文链接:...

    springboot 实战项目教程.txt

    - 统一异常处理机制,提高用户体验。 - **单元测试**: - 使用JUnit和Mockito进行单元测试。 #### 五、实战案例分析 - **案例背景**:本教程以一个电商平台项目为例,涵盖商品管理、订单处理等模块。 - **需求...

    ElasticSearch文档.pdf

    对于集群状态为黄色时并发插入数据报错的情况,也有相应的处理方法和建议。 在文档最后,提到了Elasticsearch的学习资料和参考资料,以及一些名词的定义和缩略语说明。这些信息对于开发者和使用者理解Elasticsearch...

    传智书城项目实践

    在“传智书城项目实践”中,我们探讨的是一个实际的软件开发案例,它涉及到构建和维护一个图书销售或管理平台。这个项目可能涵盖了多种技术栈和开发流程,旨在帮助学习者提升其在真实工作环境中的应用能力。在描述中...

    ElasticSearch中文学习教程

    ElasticSearch运行在Java虚拟机(JVM)之上,因此JVM配置非常重要。主要关注点包括堆内存大小、垃圾回收策略等。 #### 五、源码分析 **6.1. 使用Guice进行依赖注入与模块化系统** ElasticSearch使用Guice框架来管理...

    Python web接口开发与测试.pdf

    在面对Python程序报错时,本书建议读者不要慌张,给出了几种常见的错误类型及其解决方法,比如缩进错误、引包错误、编码错误等,并提倡学会分析错误来提高解决问题的能力。 书中第二章开始引入Django框架的入门知识...

Global site tag (gtag.js) - Google Analytics