JSONObject与JSONArray区别


JSON是一种取代的XML数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{} 双括号表示对象 即 {“key值”:“value值”}

[] 中括号表示数组 即[ {“key值”:“value值”}, {“key值”:“value值”}, {“key值”:“value值”}]

1、生成JSON字符串

JSONObject jsonObject = new JSONObject();jsonObject.put(key, value);```

2.解析JSON字符串

1)JavaBean

	//json数组{"data":{"age":10,"id":1,"name":"jack"}}///*** 解析返回Person类** @param data 获取到的数据* @return*/public static Person getPerson(String key, String jsonString) {//new一个对象、类似于实体Person person = new Person();try {//把字符串解析成json对象JSONObject jsonObject = new JSONObject(jsonString);//获取"data"的json对象,即从json对象中取key是data的值JSONObject personObject = jsonObject.getJSONObject("data");//获取数据,并将数据塞入对象中person.setId(personObject.getInt("id"));person.setName(personObject.getString("name"));person.setAddress(personObject.getString("address"));} catch (Exception e) {// TODO: handle exception}return person;

2)List数组

//包含多个对象
{"persons":[{"age":10,"id":1,"name":"jack"},{"age":11,"id":2,"name":"rose"}{"age":16,"id":3,"name":"tom"}]}/*** 解析返回多个Person对象* @param data 传入的json数据* @return*/public static List getPersons(String key, String jsonString) {List list = new ArrayList();try {JSONObject jsonObject = new JSONObject(jsonString);// 返回json的数组JSONArray jsonArray = jsonObject.getJSONArray(key);for (int i = 0; i < jsonArray.length(); i++) {JSONObject jsonObject2 = jsonArray.getJSONObject(i);Person person = new Person();person.setId(jsonObject2.getInt("id"));person.setName(jsonObject2.getString("name"));person.setAddress(jsonObject2.getString("address"));list.add(person);}} catch (Exception e) {// TODO: handle exception}return list;}public static List getList(String key, String jsonString) {List list = new ArrayList();try {JSONObject jsonObject = new JSONObject(jsonString);JSONArray jsonArray = jsonObject.getJSONArray(key);for (int i = 0; i < jsonArray.length(); i++) {String msg = jsonArray.getString(i);list.add(msg);}} catch (Exception e) {// TODO: handle exception}return list;}

3)嵌套Map的List数组

public static <List> listKeyMaps(String key,String jsonString) {List> list = new ArrayList>();try {JSONObject jsonObject = new JSONObject(jsonString);JSONArray jsonArray = jsonObject.getJSONArray(key);//通过循环获取数据,并放入list集合中for (int i = 0;i<jsonArray .length();i++){Map<String,Object> map = new HashMap<>();int id = jsonArray .getJSONObject(i).getInt("id");map.put("id",id);String name = jsonArray .getJSONObject(i).getString("name");map.put("name",name);int age = jsonArray .getJSONObject(i).getInt("age");map.put("age",age);list.add(map);}return list;}

3.JSONObject、JSONArray区别

1)JSONObject

json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}

2)JSONArray

json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的

Json对象中添加的是键值对,JSONArray中添加的是Json对象

JSONObject Json = new JSONObject();
JSONArray JsonArray = new JSONArray();

Json.put(“key”, “value”);//JSONObject对象中添加键值对
JsonArray.add(Json);//将JSONObject对象添加到Json数组中

3)JSONObject与Map
Map map和json都是键值对,不同的是map中键值对中间用等号分开,json中键值对中间用冒号分开。其实json就是一种特殊形式的map。

Map strmap=new JSONObject();
这里的需求是:request对象获取的map,想要返回json格式也不用白费力了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部