简单解析json数据(接上篇创建json数据)

解析json数据(接上篇 创建json数据)

1. 先了解json数据格式

{ 键:值,键:值,... }

[ 值,值,... ]

2. 创建 JSONObject 与 JSONArray 对象 传入 数据,例:

<pre name="code" class="java">String msg = "";
//若msg是遇到 { 开头,就创建 JSONObject 对象
       JSONObject jsonobject = JSONObject.fromObject(msg)
//若mgs是遇到 [ 开头,就创建 JSONArray 对象
       JSONArray jsonarray = JSONArray.fromObject(msg)

 
 
 

3. 若是 相嵌 的JSON数据,可以这么做:

//[{键:值,键:值,...},{键:值,键:值,...}]
       JSONObject jsonobjcet = jsonarray.getJSONObject(key);
//[[值,值,...],[值,值,...]]
       JSONArray new_jsonarray = jsonarray.getJSONArray(index);
//{键:[值,值,...],键:[值,值,...],...}JSONArrayjsonarray = jsonobject.getJSONArray(index);
//{键:{键:[值,值,...],键:[值,值,...],...},键:{键:[值,值,...],键:[值,值,...],...},...}
       JSONObject new_jsonobject = jsonobject.getJSONObject(key);



 

 

4. 取出值(其实方法与3差不多)

//对于 JSONObject , 调用 jsonobject.getString(key); 方法
//对于 JSONArray , 要使用循环取出
       for(int i;i<jsonarray.size();i++){
            jsonarray.getString(i);
       }

 

代码,接着上篇 创建JSON数据

public class JsonRunning {
	
	public static void main(String[] args) {
		
//              以下是上篇的代码
/* 
		JsonService jsonService = new JsonService();
		Person person = jsonService.getPerson();
		System.out.println(JsonTool.createJsonString("Person", person));
		System.out.println(JsonTool.createJsonString("Myfriends",
				jsonService.getlistPerson()));
		System.out.println(JsonTool.createJsonString("Address",
				jsonService.getlistaddress()));
		System.out.println(JsonTool.createJsonString("list_map",
				jsonService.getlistmap()));
*/		
//              正片开始
		String msg="";
		
		System.out.println();
		msg = JsonTool.createJsonString("Person", person);
		System.out.println("Person:");
		try {
			JSONObject jsonObject00 = JSONObject.fromObject(msg);
			if (jsonObject00.has("Person")) {
				JSONObject jsonObject01 = jsonObject00.getJSONObject("Person");
				System.out.println("address:"
						+ jsonObject01.getString("address"));
				System.out.println("id:" + jsonObject01.getString("id"));
				System.out.println("name:" + jsonObject01.getString("name"));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		System.out.println();
		msg = JsonTool.createJsonString("Myfriends",
				jsonService.getlistPerson());
		System.out.println("Myfriends:");
		try {
			JSONObject jsonObject10 = JSONObject.fromObject(msg);
			JSONArray jsonArray10 = jsonObject10.getJSONArray("Myfriends");
			for(int i = 0;i<jsonArray10.size();i++){
				JSONObject jsonObject11 = jsonArray10.getJSONObject(i);
				System.out.println("address:"+jsonObject11.getString("address"));
				System.out.println("id:"+jsonObject11.getString("id"));
				System.out.println("name:"+jsonObject11.getString("name"));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		System.out.println();
		msg = JsonTool.createJsonString("Address",
				jsonService.getlistaddress());
		System.out.println("Address:");
		try {
			JSONObject jsonObject30 = JSONObject.fromObject(msg);
			JSONArray jsonArray30 = jsonObject30.getJSONArray("Address");
			for(int i =0;i<jsonArray30.size();i++){
				System.out.println(jsonArray30.getString(i));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		System.out.println();
		msg = JsonTool.createJsonString("list_map",
				jsonService.getlistmap());
		System.out.println("list_map:");
		try {
			JSONObject jsonObject40 = JSONObject.fromObject(msg);
			JSONArray jsonArray40 = jsonObject40.getJSONArray("list_map");
			for(int i =0;i<jsonArray40.size();i++){
				JSONObject jsonObject41 = jsonArray40.getJSONObject(i);
				System.out.println("name:"+jsonObject41.get("name"));
				System.out.println("address:"+jsonObject41.get("address"));
				System.out.println("id:"+jsonObject41.get("id"));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}



 
 


要与上篇代码一起用才能打印出这结果

打印结果:


上篇打印结果:


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值