您的位置:首页 > 移动开发 > Objective-C

JsonObject 与JsonArray的使用

2012-05-31 17:19 477 查看
一.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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: