详谈JSONObject和JSONArray的使用

您所在的位置:网站首页 jsonobject和object有什么区别 详谈JSONObject和JSONArray的使用

详谈JSONObject和JSONArray的使用

2023-07-29 07:29| 来源: 网络整理| 查看: 265

JSONObject和JSONArray讲解 一:com.alibaba.fastjson1、JSONObject和JSONArray的区别2、如何从字符串String获得JSONObject对象和JSONArray对象3、如何从JSONArray中获得JSONObject对象4、获取JSON内的数据 二:net.sf.json1、JSONObject与JSONArray使用方法区别(1)创建方法不同(2)获取方式不同(3)解析JSON字符串

JSONObject与JSONArray使用的场景区别;

想通过键值对的形式获取数据,使用JSONObject。如果后台查询的是某个bean的list集合向前端页面传递,使用JSONArray。 一:com.alibaba.fastjson 1、JSONObject和JSONArray的区别 JSONObject的数据表示形式 { "id": "100", "name": "张三", "title": "测试", "content": null } { "id" : "100", "name" : "张三", "title" : "测试", "content" : null } JSONArray的数据表示形式(包含2个或2个以上的JSONObject) [ { "id": "100", "name": "张三", "title": "测试", "content": null }, { "id": "101", "name": "李四", "title": "备注", "content": null } ] [{ "id" : "100", "name" : "张三", "title" : "测试", "content" : null } , { "id" : "101", "name" : "李四", "title" : "备注", "content" : null }];

  经过对比,不难看出,可以看到一个很明显的区别,JSONObject最外面用的是 { } ,JSONArray最外面用的是 [ ] 。

2、如何从字符串String获得JSONObject对象和JSONArray对象 { "name": [ "boy", "girl" ] } String test = "{\"name\":[\"boy\",\"girl\"]}"; JSONObject jsonObject = JSON.parseObject(test); //string转为object类型 System.out.println("==============================================================="); System.out.println("jsonObject:" + jsonObject); JSONArray array = jsonObject.getJSONArray("name"); //输出 ["boy","girl"] System.out.println("==============================================================="); System.out.println("array:" + array); String str = JSONObject.toJSONString(array); System.out.println("==============================================================="); System.out.println("str:" + str);

输出结果:

=============================================================== jsonObject:{"name":["boy","girl"]} =============================================================== array:["boy","girl"] =============================================================== str:["boy","girl"] 3、如何从JSONArray中获得JSONObject对象

  大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样

JSONObject jsonObject = jsonArray.getJSONObject(i);

例1:(使用 getJSONObject(i) 要注意数组越界异常)

[ { "id": "100", "name": "张三", "title": "测试", "content": null }, { "id": "101", "name": "李四", "title": "标题", "content": null } ] String json = "[{\"id\" :\"100\", \"name\" :\"张三\", \"title\" :\"测试\", \"content\" :null },{\"id\" :\"101\", \"name\" :\"李四\", \"title\" :\"标题\", \"content\" :null }]"; JSONArray jsonArray = JSONArray.parseArray(json); JSONObject jsonObject = jsonArray.getJSONObject(1); // 这里的jsonObject得到的数据就是第二个JSONObject System.out.println("==============================================================="); System.out.println("jsonObject:" + jsonObject);

输出结果:

=============================================================== jsonObject:{"name":"李四","id":"101","title":"标题"}

例2:

{ "id": "100", "name": "张三", "content": [ { "age": "20", "sex": "男" } ] } String json = "{\"id\":\"100\",\"name\":\"张三\",\"content\":[{\"age\":\"20\",\"sex\":\"男\"}]}"; JSONObject jsonObject = JSONObject.parseObject(json); JSONArray jsonArray = (JSONArray) jsonObject.get("content"); System.out.println("==============================================================="); System.out.println("jsonArray:" + jsonArray); for (int i = 0; i "sex":"男","age":"20"}] =============================================================== jsonObject1:20 =============================================================== jsonObject2:20 4、获取JSON内的数据

例如:

{ "id": "100", "name": "张三", "title": "测试", "content": null } String json = "{\"id\" :\"100\", \"name\" :\"张三\", \"title\" :\"测试\", \"content\" :null }"; JSONObject jsonObject = JSONObject.parseObject(json); int ids = jsonObject.getInteger("id"); // 这里的ids得到的数据就是100. String names = jsonObject.getString("name"); // 这里的names得到的数据就是张三. System.out.println("==============================================================="); System.out.println("ids:" + ids); System.out.println("names:" + names);

输出结果:

=============================================================== ids:100 names:张三 二:net.sf.json 1、JSONObject与JSONArray使用方法区别 (1)创建方法不同 JSONObject创建的方法

//创建JsonObject第一种方法

JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "张三"); jsonObject.put("title", "测试"); jsonObject.put("content", "内容"); System.out.println("==============================================================="); System.out.println("jsonObject:" + jsonObject);

输出结果:

=============================================================== jsonObject:{"name":"张三","title":"测试","content":"内容"}

//创建JsonObject第二种方法

Map map = new LinkedHashMap(); map.put("name", "张三"); map.put("title", "测试"); map.put("content", "内容"); System.out.println("==============================================================="); System.out.println("jsonObject2:" + JSONObject.fromObject(map)); System.out.println("JSONArray解析一个Map、HashMap,则会将整个对象的放进一个数组的值中"); System.out.println("jsonObject3:" + JSONArray.fromObject(map));

注意:如果JSONArray解析一个Map、HashMap,则会将整个对象的放进一个数组的值中

输出结果:

=============================================================== jsonObject2:{"name":"张三","title":"测试","content":"内容"} JSONArray解析一个Map、HashMap,则会将整个对象的放进一个数组的值中 jsonObject3:[{"name":"张三","title":"测试","content":"内容"}] JSONArray创建的方法

//创建一个JsonArray方法1

JSONArray jsonArray = new JSONArray(); jsonArray.add(0, "张三"); jsonArray.add(1, "测试"); jsonArray.add(2, "内容"); System.out.println("==============================================================="); System.out.println("jsonArray:" + jsonArray);

输出结果:

=============================================================== jsonArray:["张三","测试","内容"]

//创建JsonArray方法2

ArrayList arrayList = new ArrayList(); arrayList.add("张三"); arrayList.add("测试"); arrayList.add("内容"); System.out.println("==============================================================="); System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));

输出结果:

=============================================================== jsonArray2:["张三","测试","内容"] 创建复杂的JSONArray JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("id", "100"); jsonObject2.put("age", "20"); jsonObject2.put("sex", "男"); jsonObject2.element("Array", arrayList); System.out.println("==============================================================="); System.out.println("jsonObject2:" + jsonObject2);

输出结果:

=============================================================== jsonObject2:{"id":"100","age":"20","sex":"男","Array":["张三","测试","内容"]} (2)获取方式不同 获取JSONObject中值 String names = jsonObject.getString("name"); System.out.println("==============================================================="); System.out.println("names:" + names);

输出结果:

=============================================================== names:张三 获取JSONArray中的值 String names2 = arrayList.get(0); System.out.println("==============================================================="); System.out.println("names2:" + names2);

输出结果:

=============================================================== names2:张三 (3)解析JSON字符串 { "id": "100", "age": "20", "sex": "男", "Array": [ "张三", "测试", "内容" ] } String jsonString = "{\"id\":\"100\",\"age\":\"20\",\"sex\":\"男\",\"Array\":[\"张三\",\"测试\",\"内容\"]}"; //将Json字符串转为java对象 JSONObject obj = JSONObject.fromObject(jsonString); //获取Object中的id if (obj.has("id")) { System.out.println("id:" + obj.getString("id")); } //获取ArrayObject if (obj.has("Array")) { JSONArray array = obj.getJSONArray("Array"); for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3