json的简单知识

 
/**
	 * 用json发送数据 如int [] ,intjble[] ,String [] ....
	 * 这里是封装并发送 ,方法略显笨拙
	 */
	@Test
	public void jsonSendArray(){
		int [] intj={1,2,3,4,5,6,7,8,9,0};
		JSONObject clientKey = new JSONObject(); 
		JSONArray jsonArray = new JSONArray(); //保存数组数据的JSONArray对象
		for(int i = 0 ; i < intj.length ;i++){  //依次将数组元素添加进JSONArray对象中
			jsonArray.put(intj[i]);
//          两种添加方式一样			
//			try {
//				jsonArray.put(i, intj[i]);
//			} catch (JSONException e) {
//				e.printStackTrace();
//			}
      		}
		try {
			clientKey.put("intArray", jsonArray);//jsonArray相当于int数组
	        System.out.println(clientKey.toString());   //输出测试
	      
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * JSONObject 和JSONArray的一些基础用法
	 */
	//json字符串转jsonObject,
	@Test
	public  void string2json(){
		   String str="{\"name\":\"Iyangc\",\"age\":21,\"sex\":'男',\"address\":{\"province\":\"四川\",\"city\":\"成都\"}}";
		   try {
			JSONObject jsonObject = new JSONObject(str);
			String name = jsonObject.getString("name");
			JSONObject address = jsonObject.getJSONObject("address");
			String province = address.getString("province");
			int age = jsonObject.getInt("age"); 
			 System.out.println("name: "+name+"\nprovince: "+province+"\nage: "+age);
		   } catch (JSONException e) {
			e.printStackTrace();
		} 
	}

	
	//json转Jsonarray, 多组数据,json字符串的格式。
	@Test
	public  void json2String(){
		 String str= "[{\"name\":\"刑名\",\"age\":22,\"address\":" +
					"{\"province\":\"四川\",\"city\":\"成都\",\"details\":\"光明街16号\"}}," +
					"{\"name\":\"房恰\",\"age\":23,\"address\":" +
					"{\"province\":\"四川\",\"city\":\"成都\",\"details\":\"建设路5号\"}}," +
					"{\"name\":\"刘海\",\"age\":23,\"address\":" +
					"{\"province\":\"四川\",\"city\":\"成都\",\"details\":\"中山南路8号\"}}]";
	   try {
		JSONArray jsonArray = new  JSONArray(str); //将String转换成JsonArray对象
		      int length=jsonArray.length();
		     
		      //取出数据
		 for (int i = 0; i < length; i++) {
			// System.out.println(jsonArray.getJSONObject(i));//输出每一组数据
			 JSONObject jsonObject = jsonArray.getJSONObject(i);
			 String name = jsonObject.getString("name");
			 JSONObject jsonObject2 = jsonObject.getJSONObject("address");
			 System.out.println(jsonObject2);//输出每一组数据的address
			 String province = jsonObject2.getString("province");//每一组address中的province
			 System.out.println(name+"-----------"+province);
		}
	} catch (JSONException e) {
		e.printStackTrace();
	} 
	}

	/**
	 * 
	 * */
	//以键值对写入json
	@Test
	public void jsonArray2String(){
		JSONArray jsonArray = new  JSONArray();
		JSONObject jsonObject1= new  JSONObject();
		JSONObject jsonObject2= new  JSONObject();
		JSONObject jsonObject3= new  JSONObject();
		try {
			jsonObject1 .put("name","smile");
			jsonObject1 .put("age",21);
			JSONObject addressObject1 = new  JSONObject();
			addressObject1.put("province", "四川");
			jsonObject1.put("address",addressObject1 );
			
			
			jsonObject2 .put("name","金士顿");
			jsonObject2 .put("age",22);
			JSONObject addressObject2 = new  JSONObject();
			addressObject2.put("province", "四川简阳");
			jsonObject2.put("address",addressObject2 );
			
			
			jsonObject3 .put("name","酸豆角");
			jsonObject3 .put("age",21);
			JSONObject addressObject3 = new  JSONObject();
			addressObject3.put("province", "四川石桥");
			jsonObject3.put("address",addressObject3 );
			
			jsonArray.put(jsonObject1);
			jsonArray.put(jsonObject2);
			jsonArray.put(jsonObject3);
			
			//打印输出转换成json格式后的String字符串
			String string = jsonArray.toString();
			System.out.println(string );
			
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QY别说话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值