`

Jsonlib

阅读更多
使用JSON-LIB可以极大的简化JAVA对象转换成JSON对象所需进行的操作,更可以避免人工操作生成JSON对象字符串时带来的麻烦和误操作:
使用JSON-LIB,首先要有几个支持的包:
http://json-lib.sourceforge.net下载json-lib-1.1-jdk15.jar
commons-lang.jar、commons-logging.jar,commons-beanutils.jar  这些包可在tomcat/comon/lib下找到
EZMorph 下载地址http://ezmorph.sourceforge.net
morph-1.0.1 下载地址:http://morph.sourceforge.net

使用例子:
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 JSONTest {
    public static void main(String[] args) {  
        JSONTest j = new JSONTest();  
        j.ObjectList2json();  
    }   
  
    public void ObjectList2json(){
        Map map = new HashMap();
       
        List jlist = new ArrayList();
        JSONTestBean bean1 = new JSONTestBean("zhangbo","123123");
        JSONTestBean bean2 = new JSONTestBean("lisi","65489");
        Props props = new Props("127.0.0.1","8008");
       
        jlist.add(bean1);
        jlist.add(bean2);
       
        map.put("Props", props);
        map.put("jsonObjectList", jlist);
       
        JSONArray jsonArray = JSONArray.fromObject(map);  
        System.out.println(jsonArray);  
    }
   
    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 = 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);  
        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 JSONTestBean("zhangbo","234234"));  
        System.out.println(jsonObject);  
        /* 
         * prints  
         * {"func1":function(i){ return this.options[i]; 
         * },"pojoId":1,"name":"json","func2":function(i){ return 
         * this.options[i]; }} 
         */  
    }  
  
    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:
public class JSONTestBean {

    private String userName;

    private String password;

    public JSONTestBean() {

    }

    public JSONTestBean(String username, String password) {
        this.userName = username;
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

//===================================================
public class Props {
    private String ip;
    private String port;

    public Props() {
    }

    public Props(String ip, String port) {
        this.ip = ip;
        this.port = port;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getPort() {
        return port;
    }

    public void setPort(String port) {
        this.port = port;
    }

}

使用起来很方便,有了JSON-LIB的支持,可以使开发者轻松构建起基于JSON的AJAX应用程序

附加:关于使用JSON-LIB转换带有DATE类型的对象需要额外的一些设置

JsonConfig cfg=new JsonConfig();
cfg.registerJsonValueProcessor(java.util.Date.class, new JsonValueProcessorImpl());
cfg.registerJsonValueProcessor(java.sql.Date.class, new JsonValueProcessorImpl());
JSONObject obj = JSONObject.fromObject(info,cfg);

JsonValueProcessorImpl为实现了源代码中的接口JsonValueProcessor

import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonValueProcessorImpl implements JsonValueProcessor{
private String format="yyyy-MM-dd";
public JsonValueProcessorImpl(){
 
}
public JsonValueProcessorImpl(String format){
  this.format=format;
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
  String[] obj={};
  if(value instanceof Date[]){
   SimpleDateFormat sf=new SimpleDateFormat(format);
   Date[] dates=(Date[])value;
   obj =new String[dates.length];
   for (int i = 0; i < dates.length; i++) {
    obj[i]=sf.format(dates[i]);
   }
  }
  return obj;
}

public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
  if(value instanceof Date){
   String str=new SimpleDateFormat(format).format((Date)value);
   return str;
  }
  return value.toString();
}

public String getFormat() {
  return format;
}

public void setFormat(String format) {
  this.format = format;
}

}


这也只是实现了将DATE类型转换成yyyy-MM-dd的格式...测试一下吧!~~~

分享到:
评论

相关推荐

    JSONlib.rar

    JSONlib是一个Java库,专门设计用于处理JSON(JavaScript Object Notation)数据格式。JSON作为一种轻量级的数据交换格式,被广泛应用于Web服务和客户端应用程序之间的数据传输,因为它的语法简单,易于阅读和编写,...

    jsonlib需要jar包

    jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib需要jar包jsonlib...

    jsonlib.rar

    在Java开发中,JSON库如jsonlib对于处理JSON数据至关重要。JSONLib是一个广泛使用的Java库,它提供了一系列的方法来序列化和反序列化Java对象为JSON字符串。 **JSON的基本结构与数据类型** 1. **对象(Object)**: ...

    json lib json lib

    在Java中,处理JSON数据通常需要依赖特定的库,而“json lib json lib”显然指的是一个用于Java的JSON处理库。 “json.jar”是这个库的实现,通常是一个包含所有必要类和方法的Java类库文件,可以被Java应用程序或...

    json lib jdk

    在描述中提到的"json lib jdk15",可能意味着这个版本的JSON Lib是专门为Java Development Kit 1.5设计的,确保在那个版本的Java环境中可以正常工作。JDK 1.5是Java的一个重要版本,引入了诸如泛型、枚举、匿名内部...

    jsonlib相关jar包

    jsonlib及其依赖jar包,它包括commons-beanutils.jar,commons-collections.jar,commons-lang.jar,commons-logging-1.2.jar, ezmorph-1.0.6.jar,json-lib-2.4-jdk15.jar,这些库可以满足转化Java对象到json的...

    Gson和Jsonlib需要的jar包

    本篇文章将详细介绍两个流行的Java JSON解析库:Gson和Jsonlib。 ### Gson库 Gson是Google提供的一款强大的JSON库,它可以直接将Java对象转换为JSON字符串,也可以将JSON数据反序列化为Java对象。Gson的优点在于其...

    json lib最新源代码

    json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码json lib最新源代码...

    jsonlib的所有包

    这个压缩包“jsonlib”很可能包含了Jsonlib库的所有相关组件和文件。 Jsonlib的主要功能包括: 1. **JSON对象的创建**:Jsonlib允许开发者通过简单的API创建JSON对象。例如,你可以创建一个JSON对象并添加键值对,...

    json lib的jar包

    对于Java开发者来说,"json lib的jar包"是一个非常重要的工具,它可以帮助你在Java应用中轻松地处理JSON数据。这个jar包可能包含了诸如解析JSON字符串、创建JSON对象、遍历JSON结构以及序列化和反序列化等功能。 在...

    使用jsonlib需要的jar包

    在Java中,为了处理JSON数据,我们可以利用各种库,其中之一就是JsonLib。JsonLib是一个用Java编写的开源库,它提供了一系列API来方便地解析、生成和操作JSON数据。 JsonLib支持多种数据类型与JSON的转换,包括基本...

    JSON Lib.rar

    JSON Lib.rar commons-beanutils-1.8.3.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar

    json lib

    json lib 2.2.1

    jsonlib.jar

    Jsonlib是一个Java库,专门设计用于处理JSON格式数据,它提供了一套全面的API,使得在Java应用程序中生成和解析JSON变得非常简单。 Jsonlib的主要功能包括: 1. **JSON对象创建**:Jsonlib允许开发者通过Java对象...

    springmvc_hibernate+json lib包

    标题中的"springmvc_hibernate+json lib包"表明这是一个与Spring MVC、Hibernate和JSON相关的库文件集合。在Java开发领域,这三大技术是构建Web应用程序的重要组件。让我们深入了解一下它们各自的功能以及它们如何...

    jsonlib所需jar包

    本文将深入探讨与“jsonlib所需jar包”相关的知识点,包括jsonlib库的介绍、使用场景、如何导入项目以及避免重复文件的方法。 首先,让我们了解什么是jsonlib。Jsonlib是一个用Java编写的开源库,专门用于处理JSON...

    Jsonlib.zip

    Jsonlib是一个Java库,专门用于处理JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,因其简洁明了的结构和易于解析的特性,在Web服务和客户端之间广泛使用。Jsonlib则提供了方便的API...

    Python库 | jsonlib-1.3.9-py2.5-macosx-10.3-i386.egg

    python库。 资源全名:jsonlib-1.3.9-py2.5-macosx-10.3-i386.egg

    JSON LIB转化时间

    这篇博客“JSON LIB转化时间”可能探讨了如何使用JSON Lib处理日期和时间在JSON中的转换问题。 日期和时间在JSON中通常以字符串形式表示,例如"2023-03-20T10:30:00",这是因为JSON标准本身并不支持日期类型。在...

Global site tag (gtag.js) - Google Analytics