java JSONArray与JSONObject的增删改查大解析 一篇让你不再迷茫

前提

相关的jar包   https://download.csdn.net/download/qq_37591637/11162911


JSONArray与JSONObject的区别

JSONArray最外面一层是[]   而JSONObject最外面一层是{}

JSONArray与JSONObject的共同点

二者可以添加数组  list集合   map集合、基础数据类型   自定义类型等等


package cn.com.socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class A {
public static void main(String[] args) {
//jsonobject的crud
	jsonO();
//jsonarray的crud
	jsonA();
}

public static void jsonO(){
	JSONObject jo=new JSONObject();
	//基础类型
	jo.put("str", "JSONArray");
	jo.put("int", 1);
	jo.put("double", 2.032);
	jo.put("boolean", false);
	//数组 list集合 map集合
	String [] sz={"sz0","sz1","sz2"};
	jo.put("sz", sz);
	User u=new User("username", "tell", "money");
	jo.put("user", u);
	List<String> list=new ArrayList<>();
	list.add("list0");
	list.add("list1");
	list.add("list2");
	list.add("list3");
	list.add("list4");
	jo.put("list", list);
	Map<String, Integer> map=new HashMap<String, Integer>();
	map.put("map0", 110);
	map.put("map1", 119);
	map.put("map2", 120);
	jo.put("map", map);
	//1、修改 自定义对象中的tell 为17356896201
    jo.getJSONObject("user").put("tell", "17356896201");
	//2、修改list集合里面的list1为l1
    jo.getJSONArray("list").element(1,"l1");
	//3、修改map集合中map1的值为555
    jo.getJSONObject("map").put("map1", 555);
	//4、修改sz中的sz1为sss1
    jo.getJSONArray("sz").element(1,"sss1");
	//5、修改JSONArray为jsy
    jo.put("str", "jsy");
    //循环遍历
   for (Object s : jo.keySet()) {
	System.out.println(s+"--"+jo.getString((String) s));
                       }
   System.out.println("------------------------------------------");
}

public static void jsonA(){
	//jsonarray的增删改查
	JSONArray ja=new JSONArray();
	ja.add("JSONArray");
	ja.add(1);
	ja.add(1.23);
	ja.add('d');
	
	User u=new User("username", "tell", "money");
	ja.add(u);//4
	
	List<String> list=new ArrayList<>();
	list.add("list0");
	list.add("list1");
	list.add("list2");
	list.add("list3");
	list.add("list4");
	ja.add(list);//5
	
	Map<String, Integer> map=new HashMap<String, Integer>();
	map.put("map0", 110);
	map.put("map1", 119);
	map.put("map2", 120);
	ja.add(map);//6
	
	
	String [] sz={"sz0","sz1","sz2"};
	ja.add(sz);//7
	
	
	//1、修改 自定义对象中的tell 为17356896201
	ja.getJSONObject(4).put("key", "17356896201");
	//2、修改list集合里面的list1为l1
	ja.getJSONArray(5).element(1,"L1");
	//3、修改map集合中map1的值为555
	ja.getJSONObject(6).put("map1", 555);
	//4、修改sz中的sz1为sss1
	ja.getJSONArray(7).element(1,"sss1");
	//5、修改JSONArray为jsy
	ja.element(0, "jsy");
	//循环遍历
	for (int i = 0; i < ja.size(); i++) {
		System.out.println(ja.get(i));
	}
	System.out.println("------------------------------------------");
}
}



控制台信息如下


总结

json数组添加任何类型的数据都是add();   json对象添加任何类型的数据都是put(key,val)

对于list集合以及数组的获取都是.getJSONArray(index)

对于map集合以及自定义对象的获取都是.getJSONObject(index)

代码如下

package cn.com.tools;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
	/*author:命运的信徒
	 * date:2019/5/18
	 */
	String str ="[{'otitle':'会','source':'7'},{'otitle':'不会','source':'3'}]";
	//1.把字符串类型的json数组对象转化JSONArray
	JSONArray json=JSONArray.fromObject(str);
	//2、循环遍历这个数组
	 for(int i=0;i<json.size();i++){
		 //3、把里面的对象转化为JSONObject
		  JSONObject job = json.getJSONObject(i);   
		  // 4、把里面想要的参数一个个用.属性名的方式获取到
		  System.out.println(job.get("otitle")+":"+job.get("source")) ; 
	  }

}
}

效果图如下

您的支持是我分享的动力

 

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_37591637

请给我持续更新的动力~~

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

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

打赏作者

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

抵扣说明:

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

余额充值