一、Fastjson和JSON
fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。主要的 API 是 JSON.toJSONString 和 JSON.parseObject
序列化:
String jsonString = JSON.toJSONString(obj);
反序列化:
VO vo = JSON.parseObject("...", VO.class);
二、JSON和JSONObject
JSONObject是继承JSON的,而toJSONString,parse,parseObject 这些方法只在JSON这个类里有,JSONObject并没有重写,所以他们其实没有区别
JSONObject.toJSONString = JSON.toJSONString
JSONObject.parse = JSON.parse
JSONObject.parseObject = JSON.parseObject
三、parse()和parseObject()
1、JSON.parse()返回的结果是Object对象
2、JSON.parseObject()的返回结果可以是JSONObject(一个Map的实现类),也可以是指定的类型(可以用来处理泛型)
四、toJSONString()和toString()
为什么前后端传参不直接传String,非得传JSONString?
String字符串:
var str1 = '{ "name": "cxh", "sex": "man" }'JSON对象:
var str2 = { "name": "cxh", "sex": "man" }JSON字符串:
var str2 = "{ \"name\": \"cxh\", \"sex\": \"man\" }"
那明明一种形式能用String表示,干嘛非得费劲地整成json格式呢?-----那是因为json在获取内容方面比String更方便:
如果你在前台使用,那么Json对象可以通过xx.name来调用获取;如果是字符串,那就只能是字符串,你就只能各种切割各种分组获得name,数据一多看不切割死你,烦不胜烦... ...