在项目开发中,后台Action向前端传递数据会是Json格式,这时候我们需要使用到JSONObject、JSONArray,注意若使用这两个必须要在项目中导入commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 这些Jar包。
在之前讲解过java对象转换json数据,那么在转换的时候我们发现有时候会使用JSONObject,有时候使用JSONArray,那么什么时候用JSONObject?什么时候用JSONArray?下面我们讲解一下这两个的区别。
1.JSONObject、JSONArray的使用场景
想通过键值对的形式获取数据,则使用JSONObject
如果后台查询的是某个Bean的List集合向前端传递数据,则使用JSONArray
2. JSONObject与JSONArray创建方法
JSONObject创建的方法:
//创建JsonArray第一种方法
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "kobi");
jsonArray.add(1, "34");
jsonArray.add(2, "ALI");
System.out.println("jsonArray1:" + jsonArray);
//创建JsonArray第二种方法
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("kobi");
arrayList.add("34");
arrayList.add("ALI");
System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
JSONArray创建的方法:
//创建JsonArray第一种方法
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, "kobi");
jsonArray.add(1, "34");
jsonArray.add(2, "ALI");
System.out.println("jsonArray1:" + jsonArray);
//创建JsonArray第二种方法
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("kobi");
arrayList.add("34");
arrayList.add("ALI");
System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
3.案例演示
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