一、什么是json?
json本来是javascript里的内容,有时后端要传各种各样的数据格式来适应前端,所以需要用到json来转换,用它来表示各种各样复杂的数据,如对象,数组,集合,以及集合的集合等数据。
json是一种轻量级的前端后端以及网络传输的数据交换格式,就是一串字符串,只不过元素会使用特定的符号标注。 {} 双括号表示对象,[] 中括号表示数组,”” 双引号内是属性或值,: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)。
在后端可以把一个字符串,然后通过json来转换成特定的字符串传到前端去 。
二、为什么要用json?
易于解析这种语言, 客户端JavaScript可以简单的通过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 解析器和生成器,来自阿里巴巴的工程师开发。
JSON.parseObject(String str)是将str转化为相应的JSONObject对象
JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。
//json字符串转换为对象 jsonString = "{"result":"success","message":"成功!"}"; //或jsonString = "{'idcard':'42313123','id':'2345'}"; jsonObject = JSONObject.parseObject(jsonString); JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("data")); //json字符串转换为map Map<String,String> map = JSONObject.parseObject(jsonString, Map.class); //JSONObject转换为json字符串 String jsonstr=JSON.toJSONString(jsonObject); //将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"));