欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

json对象操作

程序员文章站 2022-07-12 16:29:35
...

对json的基本操作

使用json-lib包对json对象进行解析,需要使用如下jar包:

 * 1.commons-beanutils-1.8.0.jar
 * 2.commons-collections-3.2.1.jar
 * 3.commons-lang-2.5.jar
 * 4.commons-logging-1.1.1.jar
 * 5.ezmorph-1.0.6.jar
 * 6.json-lib-2.4-jdk15.jar

json的格式如下:

 * {
 *      "key1" : value1,
 *      "key2" : value2
 * }
 

以上就是一个json数据,其中key是一个字符串,value是一个object对象,跟map很相像,相当于一个map<String,Object>

除了一个json以外,还有json数组,如下

 * [
 *      {
 *          "key1" : value1,
 *          "key2" : value2 
 *      },
 *      {
 *          "key1" : value1,
 *          "key2" : value2
 *      }
 * ]

以上表示一个json数组,其中存放了两个json对象,相当于一个list<Map<String,Object>>

常用的json对象

  • JSONObject 是一个json对象
  • JSONArray 是一个json数组,但是里面未必放的是json对象,也可以放字符串等等,常用的方法按下alt + /键就可以查看,有集合都有的添加,删除,数据转换等

实现的功能:

 *  1.1.把一个json字符串或者map集合转换为jsonobject 
 *  jsonobject json = JSONObject.fromObject(obejct);
 *  
 *  1.2.获取jsonobejct中的属性    
 *  Object obj = jsonobject.get("key");  //获取key对应的值,还有getString("key"),getDouble("key")等
 *      
 *  1.3.添加jsonobject中的属性    
 *  Object obj = jsonobject.put("key", object) //返回添加前该key值对应的value,如果不存在则返回null
 *  
 *  1.4.删除jsonobject中的属性    
 *  Object obj = jsonobject.remove("key"); //返回被删除的值
 *      
 *  1.5.判断jsonobject中是否有某个属性  
 *  Boolean flag = jsonobject.containsKey("key");
 *      
 *  1.6.把json对象转换成字符串        
 *  String str = jsonobject.toString();
 *      
 *  1.7.把json对象转换成map集合      
 *  Map map = (Map)JSONObject;  //可以直接使用强制转换
 *      
 *  1.8.获取json中的属性个数     
 *  int size = jsonobejct.size();
 * 
 *      
 *  2.1.把一个json数组转换为jsonarray   
 *  JSONArray array = JSONArray.fromObject(arrayStr/map);
 *      
 *  2.2.获取jsonarray中的某个对象jsonobject     
 *  jsonobject = array.get(index);
 *      
 *  2.3.添加一个元素  
 *  boolean flag = array.add(object);
 *      
 *  2.4.删除一个元素  
 *  booelan flag = array.remove(index);  //也可以通过一个object匹配
 *      
 *  2.5.转换为字符串  
 *  toString();
 *      
 *  2.6.遍历每一个元素       
 *  可以使用iterator遍历,与list一致,或者通过size()循环
 *      
 *  2.7.转换成list集合   
 *  Object object = array.toArray();  
 *  List list = Arrays.asList((Object []) object);
 *      
 *  2.8.获取数组中的个数    
 *  int size = array.size();
 *      
 * 

获取如下json的lastName属性:

 *      {
 *          "name":
 *              {
 *                  "firstName" : "json",
 *                  "lastName"  : "dad"
 *              },
 * 
 *          "age":24
 *      }
 *      
 *      json.getJson("name").getString("lastName");
 *      
 *