JSON解析之JSONObject与JSONArray的使用
来源:互联网 发布:网络优化工程师前景 编辑:程序博客网 时间:2024/06/05 10:27
一、应用场景
二、依赖JAR包
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-XXX-jdk15.jar
JSONObject 在线API:http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html
二、JSONObject和JSONArray的简单介绍
accumulate(String key, Object value) :如果对象中已经存在key-value1对,该方法执行后key的value新值积累为 一个数组[value1,value]。
discard(String key):如果key值存在,删除对应的key-value.
element(String key, boolean value) :若对象中已经存在key-value对,该方法执行后value新值代替原先的value值.
fromBean(Object bean):静态方法,通过一个pojo对象创建一个JSONObject对象
fromJSONObject(JSONObject object):静态方法,通过另外一个JSONObject对象构造一个JSONObject对象
fromJSONString(JSONString string):静态方法,通过一个JSONString创建一个JSONObject对象
toString():把JSONObject对象转换为json格式的字符串
三、JSONObject类的简单使用
// 创建一个空的JSONObject对象 JSONObject json = new JSONObject(); // accumulate方法, 附加key值后成为一个数组 json.accumulate("key1", 5); json.accumulate("key1", "heloo"); // 创建一个map对象 Map<String, String> map = new HashMap<>(); map.put("key3", "hello"); map.put("key4", "system"); // map值附加在json值后面 json.accumulateAll(map); // element方法, 代替 json.element("key2", 12); json.element("key2", "value2"); // 构建更加复杂的json String strd = "{user:{userId:123566, uname:'jack', books:{book1:'spring', book2: 'springmvc'}}}"; // 字符串转换为JSONObject对象 JSONObject obj = JSONObject.fromObject(strd); // 再将obj添加到json对象中 json.element("key23", obj); // 解析json对象 String nn = json.getJSONObject("key23").getJSONObject("user").getString("uname"); System.out.println(nn);
四、实体类和集合的序列化与反序列化
public class Student { private String name; private String gender; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
public class Class { private String classNum; private String className; private String way; private Student student; private List<Student> students; public String getClassNum() { return classNum; } public void setClassNum(String classNum) { this.classNum = classNum; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getWay() { return way; } public void setWay(String way) { this.way = way; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } public Student getStudent() {return student; } public void setStudent(Student student) {this.student = student; } }
public static void main(String[] args){Student st = new Student();st.setAddress("上海");st.setName("wanda");st.setGender("男");Student st1 = new Student();st1.setAddress("北京");st1.setName("youku");st1.setGender("女");Class cl = new Class();cl.setClassName("高三二班");cl.setClassNum("2334"); cl.setStudent(st); List<Student> list = new ArrayList<Student>(); list.add(st); list.add(st1); cl.setStudents(list); // *************JSONObject对实体类进行序列化和反序列化******************************** // 实体类的序列化:首先对实体类进行序列化成json格式数据,再转化为字符串,该字符串一般会发给前端/其他项目JSONObject job = JSONObject.fromObject(cl);String res = job.toString();System.out.println(res);// 实体类的反序列化:首先将json格式字符串转换为JSONObject对象JSONObject js = JSONObject.fromObject(res);// 再将JSONObject对象转换为实体类格式Class ne = (Class) JSONObject.toBean(js, Class.class);// 检测一下System.out.println(ne.getStudents().toString());// *************JSONArray对集合进行序列化和反序列化********************************// 对集合进行序列化:首先对集合进行序列化成JSONArray格式数据,再转化为字符串JSONArray ja = JSONArray.fromObject(list);String liststr = ja.toString();System.out.println(liststr);// 反序列化:如果集合存储的是bean类,需要指定class属性JSONArray ss = JSONArray.fromObject(liststr);Student[] s = (Student[]) JSONArray.toArray(ss, Student.class);System.out.println(s.toString());}
- JSON解析之JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用-解析Json
- java JSON使用之JSONObject、JSONArray与Object的转换
- JSON入门之JSONObject与JSONArray的使用
- JSONObject与JSONArray的区别 解析json数据
- json数据解析<一> JSONObject和JSONArray的简单使用
- Android-json解析(三):原生JSONObject+JSONArray的使用
- JSONObject/JSONArray解析json
- JSONObject与JSONArray解析Json数据例子
- 使用JSONObject和JSONArray 进行Json解析
- java JSON学习—JSONObject与JSONArray的使用
- JSONObject与JSONArray的Json字符串创建使用案例
- jsonObject和jsonArray解析json的方式
- jsonObject和jsonArray解析json的方式
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- JSONObject与JSONArray的使用
- POI-数据导入导出
- Maven搭建Spring+SpringMVC+Mybatis+Shiro项目详解
- A Famous Music Composer
- mac下安装完myeclipse启动tomcat报错解决方法
- 直线Line
- JSON解析之JSONObject与JSONArray的使用
- Python创建对象与赋值
- libevent遇到错误怎么处理
- 装Ubuntu系统黑屏等问题汇总
- MapReduce工作原理讲解
- 自执行函数、map循环、call和apply用法
- RedHat Enterprise Linux 6.4使用Centos 6 的yum源
- Android 测试资源之 GitHub 篇
- Android MediaProjection截屏与录屏(ScreenCapture Library 的使用)(二)