`
zhy589
  • 浏览: 39571 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

json-lib包笔记

阅读更多
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 list = new ArrayList();  
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的方法



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[] { true, false, true };
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 学习笔记 分享下

    这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...

    json 学习笔记_20140116.pdf

    在本文档《json 学习笔记_***.pdf》中,主要介绍了在Java开发中,如何使用三个常用的JSON处理工具:struts json,json_lib,jackson-mapper。同时,也提到了在使用这些工具时可能遇到的一些常见错误及其处理方法。 ...

    JSON学习笔记

    4. JSON库的使用:在Java中,如描述中提到的,可能涉及到了一些用于处理JSON的开源库,比如`json-lib-2.3-jdk15.jar`。这个库提供了一系列API来解析、生成和操作JSON。其他如`ezmorph-1.0.6.jar`可能用于对象的转换...

    开发中遇到问题,解决后笔记整理

    接着,使用JSON-LIB时,我们发现仅下载JSON-LIB的JAR文件并不足够,还需要其依赖的库。具体包括EZMorph、Commons Collections、Commons Lang、Commons BeanUtils以及Logging Component。确保这些库在项目中正确导入...

    vue学习笔记,B站黑马程序员的javaweb

    import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); ``` 四、如何运行项目 有两种方式可以运行项目: 方式一:点击serve后面的小三角运行vue项目,打开Local的链接。 方式二:在cmd中执行npm ...

    JsonLib:ADVPL 中的 JSON 格式支持库

    JsonLib AdvPL 的 Json 库 使用这个库可以读取和写入 Json 格式,此外还可以以简单直观的方式搜索数据。 整个库是使用 ADVPL Object Orientation 概念开发的,因此如果您想对此有所了解,请查看源代码,它们简单...

    day023-xml解析笔记和代码.rar

    复制dom4j的jar包到lib文件夹中 3. 选中jar右键buildpath 4. 在测试类中使用dom4j解析XML。(今天开始学习别人的api) dom4j中使用到的方法: 1.创建SaxReader对象 SAXReader reader = new ...

    struts2 配置jar包和超详细笔记

    本笔记将详细阐述Struts2的配置过程及核心jar包的使用。 一、Struts2概述 Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并解决了其局限性,提供了更加优秀的行动(Action)控制、拦截器...

    rollup-ts-lib-maker:使用Rollup和TypeScript创建库的模板入门

    笔记 此基本设置用于开发可以发布到NPM的库(不是应用程序)。显然,根据要创建的内容,您需要做一些额外的配置,但是至少您有一个基础。 (是的,这很乏味! :tired_face: ) 提醒 在发布到NPM之前,请不要忘记修改...

    Ext学习笔记-个人版.doc

    在Java中,处理JSON数据需要引入相关的库,如`json-lib`,并且要确保所有依赖的JAR文件都已正确添加。在Java代码中,可以使用`JSONArray`和`JSONObject`类将Java对象转换为JSON字符串: 1. `ArrayList`转换为`...

    src & lib.zip

    在Java Web项目中,src目录下通常会有一个或多个包(package),每个包内包含相关的类(class),这些类实现了应用程序的各种功能,如业务逻辑、数据访问和控制层等。开发者会在这里编写Servlets、JSP(JavaServer ...

    Android随手笔记44之JSON数据解析

    以Java为例,可以使用`json-lib`库中的`JSONObject`类。下面是一个简单的例子,展示了如何创建一个JSON字符串: ```java import net.sf.json.JSONObject; public class JsonTools { public static String ...

    scala-advanced:Scala先进

    scala-json 操作(json4s) 类库扩展 √ shapeless 泛型编程库 类库扩展 × scala-app-cats cats 库相关操作 类库扩展 × scala-resources-notes md格式笔记 提升 √ scala-resources-book scala-书籍 提升 √ 编码...

    小项目第四部分

    4. **JSON-lib-2.1-jdk15.jar**:这是一个JSON库的JAR文件,用于在Java中处理JSON格式的数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在SSH...

    meteor-notes:流星笔记应用程序

    此外,还可能有 `.gitignore` 文件,用来指定 Git 忽略的文件和目录,以及 `package.json` 文件,描述了项目依赖的 npm 包和项目的元数据。 总的来说,“meteor-notes”是一个使用 Meteor 框架构建的全栈 ...

    cdh6.3.2 离线安装5个所需文件及安装小笔记

    在CDH6.3.2中,可能需要单独下载Flink的二进制包,并通过Cloudera Manager进行安装和配置。Flink与Hadoop生态系统中的其他组件结合,可以为实时数据分析和流处理提供强大支持。 离线安装CDH6.3.2需要对Linux系统、...

    struts学习笔记

    - **lib**:包含所有必要的JAR文件。 - **src**:包含源代码。 #### 二、Struts2框架开发步骤 **1. 搭建开发环境**: - **获取框架JAR文件**: - **Struts2核心库**:struts2.0-core.jar - **第三方依赖**:...

    SpringMVC基础篇笔记.docx基础篇笔记.docx

    **加入必要的JAR包**:首先需要在项目的lib目录下添加SpringMVC所需的依赖库。 - `commons-logging-1.1.3.jar` - `spring-aop-4.0.0.RELEASE.jar` - `spring-beans-4.0.0.RELEASE.jar` - `spring-context-4.0.0...

    raml-example:一个简单的“Notes” API 的示例 RAML 规范

    5. `lib/` - 可能包含自定义数据类型的定义或其他RAML扩展。 通过这个"Notes" API的RAML示例,开发者可以快速理解和学习如何使用RAML来设计API,包括其结构、资源、操作、安全性和数据模型。这有助于提升API的标准...

Global site tag (gtag.js) - Google Analytics