JsonObject 与JsonArray的使用

一.json学习之一:json必须引入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的使用

为了使用JSONObject对象,我们要引入"net.sf.json"包。

import net.sf.json.JSONArray; 

import net.sf.json.JSONObject; 

 

public class JsonTest { 

 

     public static void main(String[] args) throws Exception { 

      //创建JSONObject对象 通过put(Object key,Object value)方法添加元素 

       JSONObject json = new JSONObject(); 

        json.put("version", "1.1.0"); 

       json.put("host", "maps.google.com"); 

        json.put("home_mobile_country_code", 460);// 国家代码 

        json.put("home_mobile_network_code", 0);// 移动运营商代码 

       json.put("radio_type", "gsm"); 

        json.put("request_address", true); 

        json.put("address_language", "zh_CN"); 

         

        JSONArray jsoncells = new JSONArray(); 

         

        JSONObject jsoncell = new JSONObject(); 

        jsoncell.put("mobile_country_code", 460);// 国家代码,mcc 

        jsoncell.put("mobile_network_code", 0);// 移动运营商代码,mnc 

        jsoncell.put("location_area_code", 42246);// 位置区域代码,lac LAC 42246 

        jsoncell.put("cell_id", 21379917);// 移动基站id CID 21379917 

        jsoncell.put("timing_advance",5555); 

        //将JSONObject对象添加到JSONArray中 

        jsoncells.add(jsoncell); 

        //将JSONArray对象添加到JSONObject中 

       json.put("cell_towers", jsoncells); 

 

      System.out.println(json.toString());         

 

    } 

api参考:http://json-lib.sourceforge.net/apidocs/jdk15/index.html

三.JsonArray的使用

从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组。

Java代码 复制代码 收藏代码

/**

* 从json数组中得到相应java数组

* JSONArray下的toArray()方法的使用

* @param str

* @return

*/ 

public static Object[] getJsonToArray(String str) { 

     JSONArray jsonArray = JSONArray.fromObject(str); 

     return jsonArray.toArray(); 

 

public static void main(String[] args) {        

      JSONArray jsonStrs = new JSONArray(); 

      jsonStrs.add(0, "cat"); 

      jsonStrs.add(1, "dog"); 

      jsonStrs.add(2, "bird"); 

      jsonStrs.add(3, "duck"); 

       

      Object[] obj=getJsonToArray(jsonStrs.toString()); 

      for(int i=0;i<obj.length;i++){ 

          System.out.println(obj[i]); 

      } 

  } 

  /**
	  * 从json数组中得到相应java数组
	  * JSONArray下的toArray()方法的使用
	  * @param str
	  * @return
	  */
	  public static Object[] getJsonToArray(String str) {
	      JSONArray jsonArray = JSONArray.fromObject(str);
	      return jsonArray.toArray();
	  }

   public static void main(String[] args) {		
        JSONArray jsonStrs = new JSONArray();
        jsonStrs.add(0, "cat");
        jsonStrs.add(1, "dog");
        jsonStrs.add(2, "bird");
        jsonStrs.add(3, "duck");
        
        Object[] obj=getJsonToArray(jsonStrs.toString());
        for(int i=0;i<obj.length;i++){
        	  System.out.println(obj[i]);
        }
    }


从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。
分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
同样,如果要获取java数组中的元素,只需要遍历该数组。

Java代码

/**

  * 将json数组转化为Long型

  * @param str

  * @return

  */ 

public static Long[] getJsonToLongArray(String str) { 

      JSONArray jsonArray = JSONArray.fromObject(str); 

      Long[] arr=new Long[jsonArray.size()]; 

      for(int i=0;i<jsonArray.size();i++){ 

          arr[i]=jsonArray.getLong(i); 

          System.out.println(arr[i]); 

      } 

      return arr; 

/**

  * 将json数组转化为String型

  * @param str

  * @return

  */ 

public static String[] getJsonToStringArray(String str) { 

      JSONArray jsonArray = JSONArray.fromObject(str); 

      String[] arr=new String[jsonArray.size()]; 

      for(int i=0;i<jsonArray.size();i++){ 

          arr[i]=jsonArray.getString(i); 

          System.out.println(arr[i]); 

      } 

      return arr; 

/**

  * 将json数组转化为Double型

  * @param str

  * @return

  */ 

public static Double[] getJsonToDoubleArray(String str) { 

      JSONArray jsonArray = JSONArray.fromObject(str); 

      Double[] arr=new Double[jsonArray.size()]; 

      for(int i=0;i<jsonArray.size();i++){ 

          arr[i]=jsonArray.getDouble(i); 

      } 

      return arr; 

/**

  * 将json数组转化为Date型

  * @param str

  * @return

  */ 

public static Date[] getJsonToDateArray(String jsonString) {   

      JSONArray jsonArray = JSONArray.fromObject(jsonString); 

      Date[] dateArray = new Date[jsonArray.size()]; 

      String dateString; 

     Date date; 

      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 

      for (int i = 0; i < jsonArray.size(); i++) { 

          dateString = jsonArray.getString(i); 

          try

              date=sdf.parse(dateString); 

              dateArray[i] = date; 

          } catch (Exception e) { 

              e.printStackTrace(); 

          } 

      }        return dateArray; 

 

 

public static void main(String[] args) { 

       

       JSONArray jsonLongs = new JSONArray(); 

       jsonLongs.add(0, "111"); 

       jsonLongs.add(1, "222.25"); 

       jsonLongs.add(2, new Long(333)); 

       jsonLongs.add(3, 444); 

        

       Long[] log=getJsonToLongArray(jsonLongs.toString()); 

       for(int i=0;i<log.length;i++){ 

        System.out.println(log[i]); 

       } 

        

       JSONArray jsonStrs = new JSONArray(); 

       jsonStrs.add(0, "2011-01-01"); 

       jsonStrs.add(1, "2011-01-03"); 

       jsonStrs.add(2, "2011-01-04 11:11:11"); 

        

       Date[] d=getJsonToDateArray(jsonStrs.toString());         

       for(int i=0;i<d.length;i++){ 

        System.out.println(d[i]); 

       } 

/*结果如下:

* 111

* 222

* 333

* 444

*

* Sat Jan 01 00:00:00 CST 2011

* Mon Jan 03 00:00:00 CST 2011

* Tue Jan 04 00:00:00 CST 2011

*/ 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值