json对象操作
Posted 别离的岁月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json对象操作相关的知识,希望对你有一定的参考价值。
对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
除了一个json以外,还有json数组,如下
* [
* {
* "key1" : value1,
* "key2" : value2
* },
* {
* "key1" : value1,
* "key2" : value2
* }
* ]
以上表示一个json数组,其中存放了两个json对象,相当于一个list
常用的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");
*
*
以上是关于json对象操作的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”
如何将本地存储中的 JSON 对象添加到 Android Studio 上的片段列表
NSDebugDescription = "JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。";