使用JSONObject来生成JSON和解析JSON

需求 :

1,练习使用JSONObject的方式来构建一个如下的json文件,并且将文件存储在手机的sd卡上

  {    
      "phone" : ["12345678", "87654321"], // 数组    
      "name" : "yuanzhifei89", // 字符串    
      "age" : 100, // 数值    
      "address" : { "country" : "china", "province" : "jiangsu" }, // 又是一个JSONObject对象    
      "married" : false // 布尔值    

   }    

2,练习如何解析一个如上的json文件


1,使用JSONObject来构建一个json的核心代码

			JSONObject jsonObject = new JSONObject();//整体就是一个JSONObject对象
			
			JSONArray phone = new JSONArray();//第一个键值对的值是一个数组,先生成一个数组
			phone.put(12345678).put(87654321);
			jsonObject.put("phone", phone);//将json中的第一个键值对添加进去了
			jsonObject.put("name", "yuanzhifei89");//将json中的第二个键值对添加进去了
			jsonObject.put("age", 100);//第三个键值对也添加进去了
			JSONObject address = new JSONObject();
			address.put("country", "China");
			address.put("province", "湖北");
			jsonObject.put("address", address);//将第四个键值对也添加进去了
			jsonObject.put("married", false);//将第5个键值对添加进去
			//将构建好的json对象打印出来
			Log.i("输出信息", jsonObject.toString());


2,使用JSONObject来解析JSON的核心代码

			JSONObject jsonObject = new JSONObject(text);//首先将文本变成一个JSONObject对象
			JSONArray array = jsonObject.getJSONArray("phone");//取出了jsonObject中的第一个键值对,其中的值是一个数组
			for(int i = 0; i< array.length(); i++)
			{
				System.out.println("phone "+ i +" "+array.getInt(i));
			}
			String name = jsonObject.getString("name");//取出了jsonObject中的第二个键值对,其中的值是一个字符串
			int age = jsonObject.getInt("age");//取出了jsonObject中的第3个键值对,其中的值是一个int
			JSONObject address = jsonObject.getJSONObject("address");//取出了jsonObject中的第4个键值对,其中的值又是一个较小的JSONObject对象
			String country = address.getString("country");//将这个较小的JSONObject对象中的键值对也取出来了
			String province = address.getString("province");
			
			boolean married = jsonObject.getBoolean("married");//取出了jsonObject中的第5个键值对,其中的值是一个布尔型
			System.out.println("name  "+name+"\r\n"+"age "+age +"\r\n"+"address "+country+" "+province+"\r\n"+"married "+married);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值