`
gstarwd
  • 浏览: 1511164 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

json-lib.jar开发包使用:

    博客分类:
  • JSON
阅读更多
json-lib.jar开发包使用:

依赖包:
commons-beanutils.jar;
commons-httpclient.jar;
commons-lang.jar;
ezmorph.jar;不少人使用时会提示net.sf.ezmorph.xxx找不到,就是缺这个:
morph-1.0.1.jar

相关链接:
http://json-lib.sourceforge.net/
http://ezmorph.sourceforge.net/
http://morph.sourceforge.net/

使用过程中问题:
1,把bean转化为json格式时老提示如下错误:
Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Property 'name' has no getter method
解决:声明bean为public class xxx,必须是public,我用默认类型(class xxx)都不行

2,Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.toObject([C)[Ljava/lang/Character;
原因:定义属性如下:private char[] options = new char[] { 'a', 'f' };好像不能处理这种类型的

3, private String func1 = "function(i){ return this.options[i]; }";
   和
   private JSONFunction func2 = new JSONFunction(new String[] { "i" },
     "return this.options[i];");
   转换后显示结果差不多:
   {"func1":function(i){ return this.options[i];,"func2":function(i){ return this.options[i]; }}

测试类:
 
  1. import  java.util.ArrayList;  
  2. import  java.util.HashMap;  
  3. import  java.util.List;  
  4. import  java.util.Map;  
  5.   
  6. import  net.sf.json.JSONArray;  
  7. import  net.sf.json.JSONObject;  
  8.   
  9. public   class  Json {  
  10.     public   static   void  main(String[] args) {  
  11.         Json j = new  Json();  
  12.         j.bean2json();  
  13.     }  
  14.   
  15.     public   void  arr2json() {  
  16.         boolean [] boolArray =  new   boolean [] {  true false true  };  
  17.         JSONArray jsonArray = JSONArray.fromObject(boolArray);  
  18.         System.out.println(jsonArray);  
  19.         // prints [true,false,true]   
  20.     }  
  21.   
  22.     public   void  list2json() {  
  23.         List <object>  list = <span class="keyword">new</span> <span> ArrayList <object> ();   </object> </span> </object>
  24.         list.add("first" );  
  25.         list.add("second" );  
  26.         JSONArray jsonArray = JSONArray.fromObject(list);  
  27.         System.out.println(jsonArray);  
  28.         // prints ["first","second"]   
  29.     }  
  30.   
  31.     public   void  createJson() {  
  32.         JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']" );  
  33.         System.out.println(jsonArray);  
  34.         // prints ["json","is","easy"]   
  35.     }  
  36.   
  37.     public   void  map2json() {  
  38.         Map
  39.         map.put("name" "json" );  
  40.         map.put("bool" , Boolean.TRUE);  
  41.         map.put("int" new  Integer( 1 ));  
  42.         map.put("arr" new  String[] {  "a" "b"  });  
  43.         map.put("func" "function(i){ return this.arr[i]; }" );  
  44.   
  45.         JSONObject json = JSONObject.fromObject(map);  
  46.         System.out.println(json);  
  47.         // prints   
  48.         // ["name":"json","bool":true,"int":1,"arr":["a","b"],"func":function(i){   
  49.         // return this.arr[i]; }]   
  50.     }  
  51.   
  52.     public   void  bean2json() {  
  53.         JSONObject jsonObject = JSONObject.fromObject(new  MyBean());  
  54.         System.out.println(jsonObject);  
  55.         /*  
  56.          * prints   
  57.          * {"func1":function(i){ return this.options[i];  
  58.          * },"pojoId":1,"name":"json","func2":function(i){ return  
  59.          * this.options[i]; }}  
  60.          */   
  61.     }  
  62.   
  63.     public   void  json2bean() {  
  64.         String json = "{name=\"json2\",func1:true,pojoId:1,func2:function(a){ return a; },options:['1','2']}" ;  
  65.         JSONObject jb = JSONObject.fromString(json);  
  66.         JSONObject.toBean(jb, MyBean.class );  
  67.         System.out.println();  
  68.     }  
  69. }  

操作的bean:
 
  1. import  net.sf.json.JSONFunction;  
  2.   
  3. public   class  MyBean {  
  4.     private  String name =  "json" ;  
  5.     private   int  pojoId =  1 ;  
  6.     // private char[] options = new char[] { 'a', 'f' };   
  7.     private  String func1 =  "function(i){ return this.options[i]; }" ;  
  8.     private  JSONFunction func2 =  new  JSONFunction( new  String[] {  "i"  },  
  9.             "return this.options[i];" );  
  10.   
  11.     // getters & setters   
  12.     ......  
  13. }  

题外话: 这个我对json-lib包的初次尝试,希望对大家有所帮助,另外大家有谁用过其它处理json的开发包,提出来,大家探讨一下~!!!!
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
  • taobao,赢在淘宝
发表时间:2007-08-09
第2点我不会报错
0
发表时间:2007-12-20
JSON让我觉得有一点不爽,
Java代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://www.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=Resources%20resource%3DmanageResourceDao.get(resource.getId())%3B%0AJSONArray%20array%20%3D%20JSONArray.fromObject(resource)%3B%20%2F%2F%E6%AD%A4%E5%A4%84%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8%0A" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. Resources resource=manageResourceDao.get(resource.getId());  
  2. JSONArray array = JSONArray.fromObject(resource); //此处出现异常   
Resources resource=manageResourceDao.get(resource.getId());
JSONArray array = JSONArray.fromObject(resource); //此处出现异常

异常如下:
引用
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
at net.sf.json.JSONObject._fromBean(JSONObject.java:738)
at net.sf.json.JSONObject.fromObject(JSONObject.java:182)


于是我改成
Java代码 <embed type="application/x-shockwave-flash" width="14" height="15" src="http://www.iteye.com/javascripts/syntaxhighlighter/clipboard_new.swf" flashvars="clipboard=Resources%20resource%3DmanageResourceDao.get(resource.getId())%3B%0AResources%20res%3Dnew%20%20Resources()%3B%0ABeanUtils.copyProperties(res%2C%20resource)%3B%0A%09%09%09%0AJSONArray%20array%20%3D%20JSONArray.fromObject(res)%3B" quality="high" allowscriptaccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
  1. Resources resource=manageResourceDao.get(resource.getId());  
  2. Resources res=new   Resources();  
  3. BeanUtils.copyProperties(res, resource);  
  4.               
  5. JSONArray array = JSONArray.fromObject(res);  
Resources resource=manageResourceDao.get(resource.getId());
Resources res=new  Resources();
BeanUtils.copyProperties(res, resource);
			
JSONArray array = JSONArray.fromObject(res);


这样才可以了,觉得这样有些不爽,不知道有没更好的办法解决?
0
发表时间:2008-06-12
我如果体格bean里面包含一个set集合,转换json的时候会报错,应该怎么解决》
0
发表时间:2008-06-12
我做了个applet打印程序,和服务器通过json通信,觉得json-lib牵连太多,而且通过两次转换后对象数据并没有和原来的一致,所以后来干脆用了系列化,效果还不错。
0
发表时间:2008-06-13
刚用了JSON-lib,有不少地方不符合我的需求,就直接源码拿来,改了一下
0
发表时间:2008-06-13
什么时候讲讲和hibernate结合自动生成json的问题 很多帖子力聊着聊着就讨论起这个来了.
还有那些依赖包 确实很头疼,我就是找不到那个 不得已用了个旧的代替
0
发表时间:2008-06-13
andrew.yulong 写道
我如果体格bean里面包含一个set集合,转换json的时候会报错,应该怎么解决》

改写代码吧 
一般我反而是遇到返回值是set的就不生成json
因为是一对多关系经常不用加载
分享到:
评论

相关推荐

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...

    json-lib.jar

    对于`json-lib.jar`,开发者应该查阅`json.LICENSE`以确保遵循正确的使用条款,以避免法律问题。 总的来说,`json-lib.jar`是一个强大的JSON处理工具,为Java开发者提供了一种简单的方式来处理JSON数据,广泛应用于...

    基于json-lib.jar包 JSONObject-Java常用的四种用法

    `json-lib.jar`是一个流行的Java库,用于处理JSON格式的数据,它提供了丰富的API来操作JSON对象。本文将深入探讨基于`json-lib.jar`包中的`JSONObject`类的四种常用用法。 1. **创建JSONObject** 创建`JSONObject`...

    ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.rar

    标题中的"ezmorph-1.0.6.jar"和"json-lib-2.2.2-jdk15.rar"指的是两个不同的Java库,用于处理数据转换和JSON操作。ezmorph是一个Java库,提供了对象到对象的转换功能,而json-lib是另一个库,专门用于处理JSON...

    json-lib.jar 依赖包

    json-lib.jar 开发包及依赖包 资源--commons-beanutils-1.8.0.jar commons-collections-3.2.1.jar commons-lang-2.5.jar ezmorph-1.0.6.jar json-lib-2.3-jdk15.jar

    json-lib.jar开发包及依赖包(全)

    官方json-lib工具包 json-lib还需要以下依赖包: jakarta commons-lang 2.5 jakarta commons-beanutils 1.8.0 jakarta commons-collections 3.2.1 jakarta commons-logging 1.1.1 ezmorph 1.0.6

    json-lib.jar及其所有依赖包

    总之,`json-lib.jar`及其依赖包提供了一个完整的解决方案,使得在Java环境下处理JSON数据变得更加便捷。但需要注意的是,随着技术的发展,更现代的JSON库,如Gson、Jackson和Fastjson等,已经出现了,它们在性能和...

    json-lib-2.3.jar

    在实际开发中,使用json-lib进行JSON操作的步骤通常包括: 1. 导入json-lib库,如`import net.sf.json.JSONObject; import net.sf.json.JSONArray;` 2. 创建或获取Java对象,如HashMap、ArrayList等。 3. 调用`...

    JSON-lib包json-lib-0.8.jar和json-lib-0.9.jar包

    标题中的"json-lib-0.8.jar"和"json-lib-0.9.jar"代表了JSON-lib的不同版本。每个版本可能包含一些新特性、修复的错误或者性能改进。例如,从0.8到0.9的升级,可能意味着开发团队已经对库进行了一些优化,增加了新的...

    json-lib-2.4-jdk15.jar

    通过使用json-lib,开发者可以避免手动编写繁琐的JSON字符串拼接代码,提高开发效率和代码的可读性。 然而,随着技术的发展,虽然json-lib在当时是一个流行的JSON处理库,但现在已有其他更先进的替代品,如Gson、...

    json-lib 2.4 的 jar 包

    本文将深入探讨json-lib 2.4这个jar包在Java开发中的应用。 json-lib是一个Java库,它提供了多种Java集合(如List、Map等)与JSON之间的转换功能。版本2.4是该库的一个稳定版本,支持jdk15及以上的Java运行环境。...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    - 引入必要的JAR包,包括struts2-core.jar、json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar。 - 配置struts.xml,声明Action及其结果类型。 - 创建Action类并实现需要的方法。 - 在Action方法中返回...

    json-lib-2.4-jdk15.jar所需全部JAR包_JSON_

    在使用`json-lib-2.4-jdk15.jar`之前,确保你获取并添加了所有必要的依赖JAR包到你的项目类路径中是非常重要的。不这样做可能会导致运行时错误,如`NoClassDefFoundError`或`ClassNotFoundException`,因为Java运行...

    json-lib所用的jar包

    6. `commons-logging-1.1.1.jar`:Apache Commons Logging,是一个通用的日志记录抽象层,使得`json-lib`可以方便地使用不同的日志实现,如Log4j或Java内置的日志系统,进行调试和错误处理。 综上所述,`json-lib`...

    json-lib-2.4-jdk15.jar及其相关依赖

    在Java开发中,`json-lib`库提供了多种将Java对象序列化为JSON字符串的方法,包括: 1. **Java Bean到JSON**: 只需传入一个Java Bean对象,`json-lib`就能将其转换为JSON格式的字符串。 2. **Map到JSON**: 对于包含...

    json-lib.jar开发包及其依赖包下载-亲测可行

    eclipse使用json前的准备工作,需要准备下面的六个jar包:json-lib-2.4-jdk15.jar、ezmorph-1.0.6.jar、commons-beanutils-1.9.3.jar、commons-collections-3.2.2.jar、commons-lang-2.6.jar、commons-logging-1.2....

    struts-json-plugin-2.1.8.jar struts2-junit-plugin-2.1.8.jar json-lib-2.1.jar

    最后,`json-lib-2.1.jar`是针对Java的一个JSON库,它提供了一系列的JSON操作方法,如解析JSON字符串、生成JSON对象、转换JSON到Java对象等。在Struts2的JSON插件中,可能依赖于这个库来处理JSON数据的序列化和反...

    json-lib应用所有jar

    综上所述,JSON-lib作为一个强大的Java JSON处理库,极大地简化了JSON在Java开发中的使用。无论是在简单的数据交换还是复杂的数据结构处理中,都能发挥出其高效、灵活的特点。如果你正在寻找一个可靠的Java JSON解决...

Global site tag (gtag.js) - Google Analytics