JSONObject与JSONArray的使用

 

JSONObject与JSONArray的使用

一、JAR包简介

      要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

      1.commons-lang.jar

      2.commons-beanutils.jar

      3.commons-collections.jar

      4.commons-logging.jar 

      5.ezmorph.jar

      6.json-lib-2.2.2-jdk15.jar

二、JSONObject对象使用

     JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用JSONObject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。

package com.hwy;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONObjectSample {

 //创建JSONObject对象   
    private static JSONObject createJSONObject(){   
        JSONObject jsonObject = new JSONObject();   
        jsonObject.put("username","huangwuyi");   
        jsonObject.put("sex", "男");   
        jsonObject.put("QQ", "413425430");   
        jsonObject.put("Min.score", new Integer(99));   
        jsonObject.put("nickname", "梦中心境");   
        return jsonObject;   
    }   
    public static void main(String[] args) {   
        JSONObject jsonObject = JSONObjectSample.createJSONObject();   
        //输出jsonobject对象   
        System.out.println("jsonObject==>"+jsonObject);   
           
        //判读输出对象的类型   
        boolean isArray = jsonObject.isArray();   
        boolean isEmpty = jsonObject.isEmpty();   
        boolean isNullObject = jsonObject.isNullObject();   
        System.out.println("isArray:"+isArray+" isEmpty:"+isEmpty+" isNullObject:"+isNullObject);   
           
        //添加属性   
        jsonObject.element("address", "福建省厦门市");   
        System.out.println("添加属性后的对象==>"+jsonObject);   
           
        //返回一个JSONArray对象   
        JSONArray jsonArray = new JSONArray();   
        jsonArray.add(0, "this is a jsonArray value");   
        jsonArray.add(1,"another jsonArray value");   
        jsonObject.element("jsonArray", jsonArray);   
        JSONArray array = jsonObject.getJSONArray("jsonArray");   
        System.out.println("返回一个JSONArray对象:"+array);   
        //添加JSONArray后的值   
//        {"username":"huangwuyi","sex":"男","QQ":"413425430","Min.score":99,"nickname":"梦中心境","address":"福建省厦门市","jsonArray":["this is a jsonArray value","another jsonArray value"]}  
        System.out.println("结果="+jsonObject);   
           
        //根据key返回一个字符串   
        String username = jsonObject.getString("username");   
        System.out.println("username==>"+username);  
        
        //把字符转换为 JSONObject
        String temp=jsonObject.toString();
        JSONObject object = JSONObject.fromObject(temp);
        //转换后根据Key返回值
        System.out.println("qq="+object.get("QQ"));
        
    }  

}

JSONObject 在线API:http://json-lib.sourceforge.net/apidocs/jdk15/index.html

 



 

 

基于json-lib.jar包 创建JSONObject的四个常用方法
2009-12-11 10:57

基于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()来转换;

 

 



 

 

使用json-lib遍历数组与对象(JSONArray与JSONObject)

七 18th, 2010 | Filed under J2EE

使用json-lib遍历数组与对象

//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {
JSONObject jo = (JSONObject) ja.get(i);
System.out.println(jo.get("name"));
}
 
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
 
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {
String key = (String)iter.next();
System.out.println(jsonObj .getString(Key));
}


          
          


 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值