一、json是什么?
直白点Json就是一种前后端进行数据交换的格式,就是一串字符串。
json原本是javascript里的内容,有时后端要传各种各样的数据格式来适应前端,所以需要用到json来转换,用它来表示各种各样复杂的数据,如对象,数组,集合,以及集合的集合等数据。
格式: {} 双括号表示对象,[] 中括号表示数组,”” 双引号内是属性或值,: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)。
二、为什么要用json?
服务端传递这种格式的数据,客户端js可以简单的通过eval()进行JSON数据的解析,通过遍历数组以及访问对象属性来获取数据。
三、一些常见的json格式
1.JSON对象——JSONObject
var json={"name":"张三" , "age":18 };
var json={"name":"张三", "age"=18,"address":{"street":"湖南", "city":长沙","country":"中国"}};
2、JSON数组——JSONArray
var json=[{"name":"张三" , "age":18 },{"name":"李四" , "age":20 }];
var json=[ {"name":"张三", "age"=18, "address":{"street":"湖南", "city":"长沙","country":"中国"}}, {"name":"李四", "age"=20, "address":{"street":"湖南", "city":"张家界","country":"中国"}} ]
3、对象值里面是一个数组
var json={"abc":[{"name":"txt1"},{"name","txt2"}]}; //{}里面的是一个对象
四、后端常用处理json方法
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里jar包
常见的一些转换Api
//1.json字符串转换为对象
jsonObject = JSONObject.parseObject(jsonString);
JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("data"));
//2.json字符串转换为map
Map<String,String> map = JSONObject.parseObject(jsonString, Map.class);
//3.JSONObject转换为json字符串
String jsonstr=JSON.toJSONString(jsonObject);
//4.将String转换成JSONArray,先转为JSONObject,再将[]部分转为JSONArray
String str1 = "{\"result\":\"success\",\"message\":\"成功!\",\"data\":[{\"name\":\"Tom\",\"age\":\"20\"}]}";
//data的value可以转为Array
JSONObject json = JSONObject.parseObject(str1);
JSONArray jsonArray = JSONArray.parseArray(json.getString("data"));