常用后端json处理方法

一、什么是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"));
原文地址:https://www.cnblogs.com/lcx20190724xxz/p/11237191.html