zoukankan      html  css  js  c++  java
  • Json-lib 的学习笔记

    json 按照我的理解来说,就是一个字串表,可以用来表示对象的字符串,也可以用来表示数组。它比 xml 文件节省了很多标签的内容。

    关于什么是 json,在这里我们就不过多介绍了。

    Json-lib 是一个 Java 类库(官网:http://json-lib.sourceforge.net/)可以实现如下功能:

    1、转换 javabeans、maps、collections、 Java arrays 和 XML 成为 json 格式数据:
    2、转换 json 格式数据成为 javabeans 对象。

    Json-lib 的 jar 包貌似不太好找,我在这里提供了一个版本,仅供参考。不过个人建议,还是从官网下载 jar 包会好一点,毕竟这也是一种能力。

    Json-lib的基本jar包.rar

    Json-lib 需要的 jar 包:

    (1)commons-beanutils-1.8.3.jar
    (2)commons-collections-3.2.1.jar
    (3)commons-lang-2.6.jar
    (4)commons-logging-1.1.1.jar
    (5)ezmorph-1.0.6.jar
    (6)json-lib-2.4-jdk15.jar

    第一部分:将 Java 对象转换成 JSON 格式(字符串)

    1、处理多个对象(数组、集合 List 或者 Set)

    将“数组”类型的对象转换成 JSON 格式

    JSONArray.fromObject(传入一个“数组”类型的对象);

    说明:这里的数组对象可以是 Array、对象数组,集合类(Set集合);

    2、处理单个对象(Map 或者 JavaBean)

    将 Map类型的对象,或者单个的 JavaBean 或者嵌套的对象转换成 JSON 格式;

    JSONObject.fromObject(传入一个 Map类型的对象,或者单个的 JavaBean 或者嵌套的对象);

    3、使用 JsonConfig 过虑属性:适用于 JavaBean、Map;

    示例代码:

    JsonConfig config = new JsonConfig();
    config.setExcludes(new String[] { "name" }); // 指定在转换时不包含哪些属性
    Person person = new Person("A001", "Jack");
    SONObject jsonObject = JSONObject.fromObject(person, config); // 在转换时传入之前的配置对象
    System.out.println(jsonObject);

    第二部分:将 JSON 格式(字符串)的数据转换成 Java 对象

    1、处理多个对象

    将 JSON 格式的字符串转换成 Array:

    JSONArray jsonArray = JSONArray.fromObject("[89,90,99]");
    Object array = JSONArray.toArray(jsonArray);
    System.out.println(array);
    System.out.println(Arrays.asList((Object[]) array));

    2、处理单个对象

    将 Json 串转成 JavaBean 和 Map:

    核心的方法:
    (1)将 Json 形式的字符串转换为 Map:

    JSONObject jsonObject = JSONObject.fromObject(str);
    Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(jsonObject, Map.class);

    (2)将 Json 形式的字符串转换为 JavaBean:

    jsonObject = JSONObject.fromObject(str);
    Person person = (Person) JSONObject.toBean(jsonObject, Person.class);

    注意:在将 Json 形式的字符串转换为 JavaBean 的时候需要注意 JavaBean 中必须有无参构造函数,否则会报找不到初始化方法的错误。

    参考资料:

    1、Json 和 Jsonlib 的使用 - sunzn - 博客园
    http://www.cnblogs.com/sunzn/archive/2013/02/12/2910241.html

    说明:可以作文入门级别的使用教程,本身 Json-lib 就不难。

    2、

    JSON-lib框架,转换JSON、XML不再困难 - hoojo - 博客园
    http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html

    3、

    java对象与json对象间的相互转换 - gchb9527的专栏 - 博客频道 - CSDN.NET
    http://blog.csdn.net/gchb9527/article/details/8688279

    4、

    Json lib 教程 - OPEN 开发经验库
    http://www.open-open.com/lib/view/open1326597921734.html

    5、

    Json lib 教程 - OPEN 开发经验库
    http://www.open-open.com/lib/view/open1326597921734.html

  • 相关阅读:
    实现实体类和Xml相互转化
    创建型设计模式之原型模式(Prototype)
    创建型设计模式之建造者模式(Builder)
    行为型设计模式之状态模式(State)
    行为型设计模式之职责链模式(Chain of Responsibility)
    行为型设计模式之解释器模式(Interpreter)
    行为型设计模式之模板方法(Template Method)
    结构型设计模式之享元模式(Flyweight)
    结构型设计模式之外观模式(Facade)
    获取必应壁纸
  • 原文地址:https://www.cnblogs.com/liweiwei1419/p/4329200.html
Copyright © 2011-2022 走看看