Java中JSONObject与JSONArray的使用区别详解
最近公司开发的几个项目中,后台action向前端传递数据都是json格式,于是对jsonobject、jsonarray简单的研究了一下,废话不多说,想使用jsonobject、jsonarray,策则在项目中必须要有commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 这些jar包。
1.jsonobject与jsonarray使用的场景区别;
- 想通过键值对的形式获取数据,使用jsonobject。
- 如果后台查询的是某个bean的list集合向前端页面传递,使用jsonarray。
2. jsonobject与jsonarray使用方法区别;
创建方法不同:
jsonobject创建的方法:
//创建jsonobject第一种方法 jsonobject jsonobject = new jsonobject(); jsonobject.put("username", "kobi"); jsonobject.put("age", "34"); jsonobject.put("workin", "ali"); system.out.println("jsonobject1:" + jsonobject); //创建jsonobject第二种方法 hashmap<string, string> hashmap = new hashmap<string, string>(); hashmap.put("username", "zhuli"); hashmap.put("age", "30"); hashmap.put("workin", "ali"); system.out.println("jsonobject2:" + jsonobject.fromobject(hashmap));
jsonarray创建的方法
//创建一个jsonarray方法1 jsonarray jsonarray = new jsonarray(); jsonarray.add(0, "kobi"); jsonarray.add(1, "34"); jsonarray.add(2, "ali"); system.out.println("jsonarray1:" + jsonarray); //创建jsonarray方法2 arraylist<string> arraylist = new arraylist<string>(); arraylist.add("kobi"); arraylist.add("34"); arraylist.add("ali"); system.out.println("jsonarray2:" + jsonarray.fromobject(arraylist));
获取方式不同
- 获取jsonobject中值:string username = jsonobject.getstring("username");
- 获取jsonarray中的值:string username = arraylist.getstring("2");
示例
package com.yunos.tv.video.resource.controller.web; import java.util.arraylist; import java.util.hashmap; import net.sf.json.jsonarray; import net.sf.json.jsonobject; public class test { public static void main(string[] args) { //jsonobject和jsonarray区别就是jsonobject是对象形式,jsonarray是数组形式 //创建jsonobject第一种方法 jsonobject jsonobject = new jsonobject(); jsonobject.put("username", "zhuli"); jsonobject.put("age", "30"); jsonobject.put("workin", "ali"); system.out.println("jsonobject1:" + jsonobject); //创建jsonobject第二种方法 hashmap<string, string> hashmap = new hashmap<string, string>(); hashmap.put("username", "zhuli"); hashmap.put("age", "30"); hashmap.put("workin", "ali"); system.out.println("jsonobject2:" + jsonobject.fromobject(hashmap)); //创建一个jsonarray方法1 jsonarray jsonarray = new jsonarray(); jsonarray.add(0, "zhuli"); jsonarray.add(1, "30"); jsonarray.add(2, "ali"); system.out.println("jsonarray1:" + jsonarray); //创建jsonarray方法2 arraylist<string> arraylist = new arraylist<string>(); arraylist.add("zhuli"); arraylist.add("30"); arraylist.add("ali"); system.out.println("jsonarray2:" + jsonarray.fromobject(arraylist)); //如果jsonarray解析一个hashmap,则会将整个对象的放进一个数组的值中 system.out.println("jsonarray from hashmap:" + jsonarray.fromobject(hashmap)); //组装一个复杂的jsonarray jsonobject jsonobject2 = new jsonobject(); jsonobject2.put("username", "zhuli"); jsonobject2.put("age", "30"); jsonobject2.put("workin", "ali"); jsonobject2.element("array", arraylist); system.out.println("jsonobject2:" + jsonobject2); } }
结果:
jsonobject1:{"username":"zhuli","age":"30","workin":"ali"}
jsonobject2:{"workin":"ali","age":"30","username":"zhuli"}
jsonarray1:["zhuli","30","ali"]
jsonarray2:["zhuli","30","ali"]
jsonarray from hashmap:[{"workin":"ali","age":"30","username":"zhuli"}]
jsonobject2:{"username":"zhuli","age":"30","workin":"ali","array":["zhuli","30","ali"]}
3. 解析json字符串;
package com.yunos.tv.video.resource.controller.web; import net.sf.json.jsonarray; import net.sf.json.jsonobject; public class test { public static void main(string[] args) { string jsonstring = "{\"username\":\"kobi\",\"age\":\"34\",\"workin\":\"ali\",\"array\":[\"kobi\",\"34\",\"ali\"]}"; //将json字符串转为java对象 jsonobject obj = jsonobject.fromobject(jsonstring); //获取object中的username if (obj.has("username")) { system.out.println("username:" + obj.getstring("username")); } //获取arrayobject if (obj.has("array")) { jsonarray transitlistarray = obj.getjsonarray("array"); for (int i = 0; i < transitlistarray.size(); i++) { system.out.print("array:" + transitlistarray.getstring(i) + " "); } } } }
返回值:
username:kobi
array:kobi array:34 array:ali
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。