Json

一、基本概念

1.JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式
2.采用完全独立于编程语言的文本格式来存储和表示数据
3.JSON 比 XML 更小、更快,更易解析
4.读取、写入、发送和接收JSON数据对象时,需要转换成字符串,并能从字符串转换为JSON数据对象
5.json对象就是若干个 键/值 对的集合,键是string,值可以是基本类型,或者嵌套一个Json对象,或者是一个数组(数组里的元素可以是基本类型,也可以是json对象,可以继续嵌套

二、JSON 与 JS 对象

1.JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串
var obj = {a: 'Hello', b: 'World'};                 // 这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}';          // 这是一个 JSON 字符串,本质是一个字符串
2.JSON 和 JS 对象互转
(1) JSON.stringify()        实现从对象转换为 JSON 字符串

    var json = JSON.stringify({a: 'Hello', b: 'World'});    // 结果是 '{"a": "Hello", "b": "World"}'

(2) JSON.parse()            实现从 JSON字符串 转换为对象

    var obj = JSON.parse('{"a": "Hello", "b": "World"}');   // 结果是 {a: 'Hello', b: 'World'}

三、fastjson

1.引包
<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.12</version>
</dependency>
2.json类型字符串转为各种Object
1) Object parse(String text);                           // 把JSON文本parse为JSONObject或者JSONArray

2) JSONObject parseObject(String text);                // 把JSON文本(要是{ }形式) parse成JSONObject   

   T parseObject(String text ,Class<T> clazz);         // 把JSON文本(要是{ }形式) parse成指定Object

3) JSONArray parseArray(String text);                   // 把JSON文本(要是[ ]形式)parse成JSONArray

   List<T> parseArray(String text, Class<T> clazz);     // 把JSON文本(要是[ ]形式)parse成指定JavaBean集合
3.Object转为json类型字符串或者JSONObject,JSONObject
1) Object toJSON(Object javaObject)                     // 将JavaBean转换为JSONObject或者JSONObject

2) String toJSONString(Object object);                  // 将JavaBean序列化为带格式的JSON文本   
4.JSON与List,Map格式对比
基本类型带对象(引用类型)
map打印{a1=hahaha, a2=heiheihei}{a1=test.json.TestPerson@72cbe322, a2=test.json.TestPerson@27ad080f}
JSON.toJson(map){“a1”:“hahaha”,“a2”:“heiheihei”}{“a1”:{“name”:“李明”,“age”:19},“a2”:{“name”:“张三”,“age”:12}}
List打印[af, 11][test.json.TestPerson@27ad080f, test.json.TestPerson@50ec2522]
JSON.toJson(list)[“af”,11][{“name”:“李明”,“age”:19},{“name”:“张三”,“age”:12}]

注意:(只要是jsonObject或者jsonArray都会打印成具体的样子,或者说Object,因为重写了toString()方法)


四、学习json相关知识心得

1.get,post的默认形式是 get传值在url上,post传值在body里面,但是这个不一定,比如angularJs,Order.getData({url里面的数据 },{body里面的数据 },function(){成功}, function(){失败}),跟get,post方法无关
2.@RequestParam是从url里面取值(不管get,post),默认情况下不用写,@RequestResponse是从body里面取值,一般只能有一个,拿到body里面的值(有转义字符的值)一般需要fastjson转化为对象
3.前台传数据,比如param{ id: 2, name : “hh”},浏览器在传递的时候会自动(编码,或者说序列化,大概意思),可以在浏览器network里面看请求的具体参数(这里面的值就是传到后台的实际值)

五、常用字符集以及字符编码

字符集字符编码国家/地区
ASCIIASCII编码(256个)美国标准
GB2312——GB2312-80——GBK GBK编码 (中国,GBK微软提出的)——GB18030GBK编码中国,GBK微软提出的
BIG5BIG5编码台湾
UnicodeUTF-8,UTF-16,UTF-32万国码

参考网址

字符集和字符编码(Charset & Encoding)

JSON 入门指南

注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值