JSONArray.fromObject(list)的问题

Some1314 2014-04-22 10:50:38
我用了下JSON转换测试,结果报了以下的异常. 应该如何解决啊?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at com.yict.jsontest.JsonMytest.main(JsonMytest.java:20)
我的代码如下:
package com.yict.jsontest;

import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
public class JsonMytest {

/**
* @param args
*/
public static void main(String[] args) {
List <Student> list = new ArrayList<Student>();
Student s = new Student();
s.setId(2);
s.setName("滴答");
s.setAge("28");
s.setCource("英语");

list.add(s);
JSONArray jsonArray =JSONArray.fromObject(list);
System.out.println(jsonArray.toString());
}

}

JSONArray jsonArray =JSONArray.fromObject(list); 就在这里报错了.
...全文
26882 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
youyidianmimang 2016-05-05
  • 打赏
  • 举报
回复
json-lib-***-jdk15.jar, commons-beanutils.jar, commons-lang.jar, commons-logging.jar, ezmorph-**.jar,commons-collections-3.1.jar
陇西林子 2014-05-15
  • 打赏
  • 举报
回复
jar冲突 删掉一个jar包就可以了。
sysanmei 2014-05-15
  • 打赏
  • 举报
回复
或者是包的版本不对
sysanmei 2014-05-15
  • 打赏
  • 举报
回复
没有找到commons-lang.jar包 。把包加进去试试
yuhouqingchen_2648 2014-05-14
  • 打赏
  • 举报
回复
为毛我的没问题啊,看异常是没找到类啊,包导入错误
Some1314 2014-04-22
  • 打赏
  • 举报
回复
自己弄好了,不过还是谢谢大家. 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,
Some1314 2014-04-22
  • 打赏
  • 举报
回复
1楼的,还是那样,假如不能用自定义对象的话,那我从数据库查询出来的对象,我要把一个实体对象或者list转换成JSON格式的话,那岂不是转换不了?而且JSONArray.fromObject(o); 里面的o就是一个object,并没有限制一定是Map对象,这说不通的.
小灯光环 2014-04-22
  • 打赏
  • 举报
回复
代码没有问题,确实是jar包冲突了,你删一个低版本的lang包留下高版本的,就好了。
suciver 2014-04-22
  • 打赏
  • 举报
回复
commons-lang.jar冲突了
华州一霸 2014-04-22
  • 打赏
  • 举报
回复
数据的封装用Map不要用自定义的Student对象识别不了的。List<Map>这样就可以了。
@Test public void testArrayToJSON(){ boolean[] boolArray = new boolean[]{true,false,true}; JSONArray jsonArray = JSONArray.fromObject( boolArray ); System.out.println( jsonArray ); // prints [true,false,true] } //Collection对象转换成JSON @Test public void testListToJSON(){ List list = new ArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray = JSONArray.fromObject( list ); System.out.println( jsonArray ); // prints ["first","second"] } //字符串json转换成json, 根据情况是用JSONArrayJSONObject @Test public void testJsonStrToJSON(){ JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( jsonArray ); // prints ["json","is","easy"] } //Map转换成json, 是用jsonObject @Test public void testMapToJSON(){ 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 jsonObject = JSONObject.fromObject( map ); System.out.println( jsonObject ); } //复合类型bean转成成json @Test public void testBeadToJSON(){ MyBean bean = new MyBean(); bean.setId("001"); bean.setName("银行卡"); bean.setDate(new Date()); List cardNum = new ArrayList(); cardNum.add("农行"); cardNum.add("工行"); cardNum.add("建行"); cardNum.add(new Person("test")); bean.setCardNum(cardNum); JSONObject jsonObject = JSONObject.fromObject(bean); System.out.println(jsonObject); }
找了很久 的 终于搞好了 JSON数据以来包全部的jar包 解压后放在项目下就可以了 下面付源代码 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { Json j = new Json(); j.bean2json(); } public void arr2json() { boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray = JSONArray.fromObject(boolArray); System.out.println(jsonArray); // prints [true,false,true] } public void list2json() { List list = new ArrayList(); list.add("first"); list.add("second"); JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray); // prints ["first","second"] } public void createJson() { JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']"); System.out.println(jsonArray); // prints ["json","is","easy"] } public void map2json() { Map 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); // prints // ["name":"json","bool":true,"int":1,"arr":["a","b"],"func":function(i){ // return this.arr[i]; }] } public void bean2json() { JSONObject jsonObject = JSONObject.fromObject(new MyBean()); System.out.println(jsonObject); } public void json2bean() { String json = "{name=\"json2\",func1:true,pojoId:1,func2:function(a){ return a; },options:['1','2']}"; JSONObject jb = JSONObject.fromString(json); JSONObject.toBean(jb, MyBean.class); System.out.println(); } } 操作的bean: import net.sf.json.JSONFunction; public class MyBean { 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];"); // getters & setters ...... }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧