利用org.json处理获得的json数据

综述:Java中对json数据的处理主要有三种方式(org.json / json-lib  /Gson),这三种处理json数据导入的jar包不一样,所以具体的类使用方式也有区别。

本处主要是利用org.json处理json数据,用来取json中需要的数据{其他两种方式后面会补上}

一:导入org.json需要的jar包(网上自己找到下载)
        下载地址:http://download.csdn.net/detail/lanxuezaipiao/5440983
二:直接举几个例子
        1.处理简单的json对象。使用JSONObject类
//下面为简单的json字符串
String json1 = {"city":"Beijing","street":" Chaoyang Road "};
<pre name="code" class="java">//json对象使用org.json中的JSONObject类
	JSONObject obj = new JSONObject(json1);
//知道json数据中每个键的名称,根据键取值
        String cityName = obj.getString("city");    
        String streetName = obj.getString("street");
     System.out.println("城市名:"+cityName+"街道名:"+streetName);

       输出结果如下所示:
     利用org.json处理获得的json数据_第1张图片      上面是直接根据json对象中的键值来获取对应的数据,当我们不知道json数据中的键的值得时候,可以先获取所有键的名称,然后迭代出每一个键名称,最后根据每一个名称获取对应的值;
//如果不知道简单json对象中的键值,该怎样取值。
	@Test
	public void test11() throws Exception{
		//String json1 = {"city":"Beijing","street":" Chaoyang Road "};
		String json1 = "{\"city\":\"Beijing\",\"street\":\"Chaoyang Road \"}";
		JSONObject obj = new JSONObject(json1);
		//获得json对象中的所有键的名称,形成名称的json数组
		JSONArray keyNames = obj.names();
		//
		for (int i = 0; i < keyNames.length(); i++) {
			//获得json数组中的每一个键的名称
			String keyname = keyNames.getString(i);
			//根据键的名称获取对应键的值
			String value = obj.getString(keyname);
			System.out.println(keyname+":"+value);
		}
利用org.json处理获得的json数据_第2张图片

2.复杂json对象的处理(json对象之中嵌套json对象)
       //String json2 = {"name":"owen","citys":{"one":"shanghai","two":"wuhu"}};
       String json2 = "{\"name\":\"owen\",\"citys\":{\"one\":\"shanghai\",\"two\":\"wuhu\"}}";
	//上面json中键citys的值又是一个对象
	JSONObject obj = new JSONObject(json2);
		
	JSONObject addrssObj = obj.getJSONObject("citys");  //根据键citys获取的仍然是一个json对象;
	String cityName = addrssObj.getString("one");
	System.out.println("城市名称为:"+cityName);
利用org.json处理获得的json数据_第3张图片

3.复杂json对象的处理(json对象之中嵌套json数组)
         当json对象之中嵌套json数组时,可以通过JSONArray类进行操作
	public void test3() throws Exception{
		//String json3 = {"city":"上海","persons":["张三","李四","王五"]};
		String json3 = "{\"city\":\"上海\",\"persons\":[\"张三\",\"李四\",\"王五\"]}";
		//上面json中键persons的值是一个数组
		JSONObject obj = new JSONObject(json3);
		//根据键persons获得json数组
		JSONArray array = obj.getJSONArray("persons");
		//迭代数组获得数组中的每一个值;
		for (int i = 0; i < array.length(); i++) {
			String value = array.getString(i);
			System.out.println(value);
		    }
		}
结果如下:
利用org.json处理获得的json数据_第4张图片

你可能感兴趣的:(java,json)