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
这里的需求是:request对象获取的map,想要返回json格式也不用白费力了。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
