为什么要使用JSON?

为什么要使用JSON?
什么是JSON ?
JSON的优点
比较XML
XML 和 JSON 代码比较
JSON支持的数据类型
四种基础类型
两种结构类型
JSONArray类型
JSON的使用
JavasScript 使用
JS使用演示
JAVA使用
总结
为什么要使用JSON?
在微服务数据传输时,被要求使用JSON进行传输,想写一篇关于JSON的博客。

什么是JSON ?
百度百科
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

维基百科
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。

JSON 数据格式与语言无关,脱胎自JavaScript,但当前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。

JSON的优点
比较XML
JSON XML 结论
可读性 简易语法 规范的标签形式 平分秋色,不同场景下各有优势
可扩展性 可扩展 (比XML强) 可扩展 因为 JSON是JS标准的子集合,所以它在JS处理扩展时更优优势,可存储JS复合对象
编码难度 可编码 (比XML强) 支持Dom4j、Dom、SAX等 XML编码方式有很多,但是JSON也可以很快的编码,并且在代码量(对结构解析)上要较XML少
解码难度 平 平 各不相同,解码要看被解码的数据格式和编码规则,JSON和XML都遵循自己的解码方式
XML 和 JSON 代码比较
XML

<?xml version="1.0" encoding="utf-8"?> 中国 黑龙江 哈尔滨 大庆 广东 广州 深圳 珠海 台湾 台北 高雄 新疆 乌鲁木齐

JSON
{
“name”: “中国”,
“province”: [{
“name”: “黑龙江”,
“cities”: {
“city”: [“哈尔滨”, “大庆”]
}
}, {
“name”: “广东”,
“cities”: {
“city”: [“广州”, “深圳”, “珠海”]
}
}, {
“name”: “台湾”,
“cities”: {
“city”: [“台北”, “高雄”]
}
}, {
“name”: “新疆”,
“cities”: {
“city”: [“乌鲁木齐”]
}
}]
}

JSON代码层次更清晰更容易阅读。由于字符简洁,在数据传输过程中,JSON比XML更优秀,可减少传输数据所占用的宽带

JSON支持的数据类型
四种基础类型
字符串(String)
如:“A”,“B”
数字(Numbers)
如:1,2
布尔型(Booleans)
如:true / false
两种结构类型
对象
{K1,V1 : K2,V2 : K3,V3}
K为String类型,V为JSON支持的任意类型之一。并且键值对是无序的。
数组
[1,2,3]
顺序排列的零个或多个JSON数据类型
JSONArray类型
一个JSONArray有多个JSONObject,是我们在研发中常用的类型。

JSON的使用
介绍JavaScript和Java中的使用方式

JavasScript 使用
JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合,所以可以在JavaScript以eval()函数(javascript通过eval()调用解析器)读入。

JS使用演示
/**

  • JSON的序列化
    */
    function test() {
    // 定义一个JSON格式的字符换
    var str = “{‘id’: 1, ‘name’:‘frank’, ‘sex’:1}”;
    // 将JSON数组转换为JSON对象(适用于 IE8+、Firefox 3.5+、Chrome4+、/Safari4+、Opera10+ 浏览器)
    var json = eval(str);
    // 在不支持原生JSON对象的浏览器也可以使用parseJSON方法进行读取
    var jsonPars = parseJSON(str);
    // eval 和 parseJSON区别
    // parseJSON采用解析器验证读入的代码是否真的是JSON代码,安全性更高。但是,由于这是用模拟的方式读取,速度比eval()慢;
    }

/**

JAVA使用
这里特指:com.alibaba.fastjson

工程中导入依赖

com.alibaba
fastjson
1.2.4

基本声明和放入元素
// 声明并实例化
JSONObject jsonObj = new JSONObject();
// 放入元素
jsonObj.put(“element”,“元素”);
// 序列化成JSON字符串
jsonObj.toJSONString();

//************************** 演示JSONArray的创建,放入元素和转换 *********************

// 创建JSON对象oneJson
JSONObject oneJson = new JSONObject();
oneJson.put(“one”, “一”);

// 创建JSON对象twoJson
JSONObject twoJson = new JSONObject();
twoJson.put(“two”, “二”);

// 声明并实例化Json数组,并把两个JSON对象放入
JSONArray numberJsonArr = new JSONArray();
numberJsonArr.add(oneJson);
numberJsonArr.add(twoJson);

// 将JSON数组转换为JSON字符串
String jsonArrayString = numberJsonArr.toJSONString();

// 将JSON字符串转换为JSON数组
JSONArray formatingJsonArray = JSONArray.parseArray(jsonArrayString);

总结
使用JSON的原因:

JSON数据清晰
JSON有很多工具类支持它的转换
JSON在所有主流浏览器有很好的支持
JSON在传输时数据量更小
JSON在JS中有天然的语言优势(因为它是标准的子集合)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值