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

使用JSON的方法

JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。

Json必需的包

commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar

以上包可以从

http://commons.apache.org/index.html

http://json-lib.sourceforge.net/

http://ezmorph.sourceforge.net/

http://morph.sourceforge.net/

http://www.docjar.com/

中下载到。

出现java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher错误是因为没有导入ezmorph.jar文件或版本不对。

出现java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap错误是因为没有导入commons-collections.jar文件或版本不对。

Java代码转换成json代码

1.       List集合转换成json代码

List list = new ArrayList();

list.add( "first" );

list.add( "second" );

JSONArray jsonArray2 = JSONArray.fromObject( list );

2.       Map集合转换成json代码

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);

3.       Bean转换成json代码

JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4.       数组转换成json代码

boolean[] boolArray = new boolean[] { truefalsetrue };

JSONArray jsonArray1 = JSONArray.fromObject(boolArray);

5. 一般数据转换成json代码

JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']" );

6.       beans转换成json代码

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);

json-lib包笔记的更多相关文章

  1. Json lib集成stucts2的使用方法 抛出 NestableRuntimeException异常的解决办法

    首先贴出struts 2.3.16需要导入的包 因为使用的是2.3 版本,必须要导入这个包,否则会报java.lang.NoClassDefFoundError: org/apache/commons ...

  2. BeanShell使用json.jar包处理Json数据

    环境准备 ①Jmeter版本 ,JDK ②前置条件:将json.jar包置于..\lib\下, 如果还是报错,可以将该jar包添加到测试计划的Library中:否则会报:Typed variable ...

  3. 关于程序中使用servlet-api.jar和jsp-api.jar与服务器lib包jar包冲突的问题

    问题描述:         程序中使用到javax.servlet.http.HttpServletRequest等类内容,然而这些类是依赖于tomcat容器lib包下的jar包,工程中导入这两个ja ...

  4. c# 生成json数据包

    json数据类型,归根到底就是一个字符串,管他里面什么格式,它就是一个字符串来的! 看一个json数据包: { "touser":"OPENID", " ...

  5. Json.Net学习笔记

    http://www.cnblogs.com/xiaojinhe2/archive/2011/10/28/2227789.html Newtonsoft.Json(Json.Net)学习笔记 http ...

  6. WebService使用JSON格式传递笔记+JQuery测试

    原文WebService使用JSON格式传递笔记+JQuery测试 因为一些因素,必须改写WebService,很传统,但是很多公司还在用.. 因为XML 的关系,不想让他传递数据的时候过度肥大,所以 ...

  7. arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢

    arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢 google自己搞的bionic libc来替代glibc想来是有原因的,本来glibc也是lgpl,应该也没有版权问题 ...

  8. json解包与json封包

    首先,对两个名词进行简单的说明: 1.NSData 用来存储二进制的数据类型.NSData类提供了一种简单的方式,它用来设置缓冲区.将文件的内容读入缓冲区,或将缓冲区的内容写到一个文件.不变缓冲区(N ...

  9. 使用JsonConfig控制JSON lib序列化

    将对象转换成字符串,是非常常用的功能,尤其在WEB应用中,使用 JSON lib 能够便捷地完成这项工作.JSON lib能够将Java对象转成json格式的字符串,也可以将Java对象转换成xml格 ...

  10. 普通Java Web项目为什么lib包要放在WEB-INF下

    首先一个项目要编译好之后才能部署到Tomcat中运行. Tomcat运行时如何找编译好的.class文件呢,其实Tomcat下的web项目有两个预置的classpath(就是能找到.class文件的入 ...

随机推荐

  1. Hive SQL综合案例

    一 Hive SQL练习之影评案例 案例说明 现有如此三份数据:1.users.dat 数据格式为: 2::M::56::16::70072, 共有6040条数据对应字段为:UserID BigInt ...

  2. jquery validate不用submit提交,用js提交的

    jquery validate控件 默认是使用submit提交的, 要想改成使用button的click事件处理函数中手工提交, 可以按照如下方式操作: 1 绑定form的validate, 2 然后 ...

  3. python中list和str互转

    1.list转str 假设有一个名为test_list的list,转换后的str名为test_str 则转换方法: test_str = "".join(test_list) 例子 ...

  4. 【知了堂学习笔记】java IO流归纳总结

    皮皮潇最近学到了IO流但是感觉这一块要记的东西太多了,所以重API上查阅并总结了以下几点关于IO的知识. 1.File(文件类): File类是文件以及文件夹进行封装的对象,用对象的思想来操作文件和文 ...

  5. Entity Framework Core(3)-配置DbContext

    设计时 DbContext 配置 EF Core 设计时工具如迁移需要能够发现和创建的工作实例DbContext以收集有关应用程序的实体类型以及它们如何映射到数据库架构的详细信息的类型. 此过程可以为 ...

  6. insert ignore duplicate key

    Insert into T1select * from T2  where NOT EXISTS (select 1 from T1 X where X.GUID=T2.GUID);

  7. load Properties

    /* */ public static final Properties loadProperties(String propertyFileRelativePath) /* */ { /* 67 * ...

  8. nginx + uswgi +django

    适合ubuntu 系统,不只是树莓派 安装必要软件 pt-get install build-essential psmisc apt-get install python-dev libxml2 l ...

  9. ONVIF开发实例

    <开发过过程中的经验总结> ➤工具的使用     (1)首先将文件soapClientLib.c 中"代码"的第二行和第三行注释掉,实际上该文件根本没有用,为了保险起见 ...

  10. Redis 连接命令

    1.AUTH password 验证密码是否正确 2.ECHO message 打印字符串 3.PING 查看服务是否运行 4.QUIT 关闭当前连接 5.SELECT index 切换到指定的数据库