基于json-lib.jar包 创建JSONObject的四个常用方法

(JSONObject) JSONSerializer.toJSON()或JSONObject.fromObject()     差不多是相同的功能

 

基于json-lib.jar包Json实例程序
1.从头或者从零开始,创建一个JSONObject(Creating a JSONObject from scratch)
实例1:
   JSONObject jsonObject = new JSONObject();
   jsonObject.element("name", "周星星");
   jsonObject.element("sex", "male");
   jsonObject.element("age", 18);
   jsonObject.element("job", "student");

   System.out.println(jsonObject.get("name"));// 周星星
   System.out.println(jsonObject.get("job"));// student
   System.out.println(jsonObject.getString("sex"));// male
   System.out.println(jsonObject.getInt("age"));// 18
实例2:
   JSONObject jsonObject = new JSONObject().element("string", "JSON").element("integer", "1").element("double", "2.0").element("boolean", "true");
   assertEquals("JSON", jsonObject.getString("string"));
   assertEquals(1, jsonObject.getInt("integer"));
   assertEquals(2.0d, jsonObject.getDouble("double"), 0d);
   assertTrue(jsonObject.getBoolean("boolean"));
   注:这是对实例1的一个简化版
  
2.使用一个JSON格式化字符串来创建一个JSONObject(Creating a JSONObject from a JSON formatted string)  
实例1:
   String json = "{name:\"周星星\",sex:\"male\",age:18,job:\"student\"}";
   JSONObject jsonObject = JSONObject.fromObject(json);
   //或者使用 JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(json);
   System.out.println(jsonObject.get("name"));// 周星星
   System.out.println(jsonObject.get("job"));// student
   System.out.println(jsonObject.getString("sex"));// male
   System.out.println(jsonObject.getInt("age"));// 18
实例2:
   String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";
   JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str);
   assertEquals("JSON", jsonObject.getString("string"));
   assertEquals(1, jsonObject.getInt("integer"));
   assertEquals(2.0d, jsonObject.getDouble("double"), 0d);
   assertTrue(jsonObject.getBoolean("boolean"));
  
3.使用一个Map来创建一个JSONObject(Creating a JSONObject from a Map)
实例1:
   Map map = new HashMap();  
   map.put( "string", "JSON" );  
   map.put( "integer", "1" );  
   map.put( "double", "2.0" );  
   map.put( "boolean", "true" );  
   JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( map );  
   assertEquals( "JSON", jsonObject.getString("string") );        
   assertEquals( 1, jsonObject.getInt("integer") );        
   assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );        
   assertTrue( jsonObject.getBoolean("boolean") );

4.使用一个JavaBean来创建一个JSONObject(Creating a JSONObject from a JavaBean)
实例1:
public class Mybean {
   private String string;
   private int integer;
   private double dooble;
   private boolean bool;

   // getters & setters
}

Mybean bean = new Mybean();
bean.setString("JSON");
bean.setInteger(1);
bean.setDooble(2.0d);
bean.setBool(true);
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(bean);
assertEquals("JSON", jsonObject.getString("string"));
assertEquals(1, jsonObject.getInt("integer"));
assertEquals(2.0d, jsonObject.getDouble("dooble"), 0d);
assertTrue(jsonObject.getBoolean("bool"));


由此可见,无论要转换的源是哪种类型,都可以使用(JSONObject) JSONSerializer.toJSON()或JSONObject.fromObject()来转换;

JSONObjectJar包json生成的简单案例 所有commons的网址: http://commons.apache.org/index.html 组装和解析JSONObjectJson字符串,共需要下面六个: 1、json-lib 2、commons-beanutils 3、commons-collections 4、commons-lang 5、commons-logging 6、ezmorph 第零个json-lib-2.4-jdk15.jar http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ 下载地址:http://nchc.dl.sourceforge.net/project/json-lib/json-lib/json-lib-2.4/json-lib-2.4-jdk15.jar 第一个: commons-beanutils-1.9.2.jar http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi 下载地址:http://mirrors.cnnic.cn/apache//commons/beanutils/binaries/commons-beanutils-1.9.2-bin.zip 第二个: (注:此不可用,改用旧) commons-collections4-4.0.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://apache.dataguru.cn//commons/collections/binaries/commons-collections4-4.0-bin.zip (注:此可用,低版本的稳定性更高) commons-collections-3.2.1.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://mirrors.hust.edu.cn/apache//commons/collections/binaries/commons-collections-3.2.1-bin.zip 第三个: (注:此不可用,会造成程序出错,改用旧) commons-lang3-3.3.2.jar http://commons.apache.org/proper/commons-lang/download_lang.cgi 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang3-3.3.2-bin.zip (注:此可用,低版本的稳定性更高) commons-lang-2.6-bin http://commons.apache.org/proper/commons-lang/download_lang.cgi?Preferred=http%3A%2F%2Fapache.dataguru.cn%2F 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang-2.6-bin.zip 第四个: commons-logging-1.1.3.jar http://commons.apache.org/proper/commons-logging/download_logging.cgi 下载地址:http://apache.dataguru.cn//commons/logging/binaries/commons-logging-1.1.3-bin.zip 第五个: ezmorph-1.0.2.jar http://ezmorph.sourceforge.net/ http://sourceforge.net/projects/ezmorph/files/ezmorph/ 下载地址:http://nchc.dl.sourceforge.net/project/ezmorph/ezmorph/ezmorph-1.0.6/ezmorph-1.0.6.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值