JSON是什么呢

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

之前经常听说这个名称,但是都没有真正的了解过,今天在一个项目中 (String jsonstr = JSONObject.toJSONString(test); String calc_sign = SignUtil.sign(jsonstr,  signCfg.getSecret(), timestr);)突然发现JSON需要转成字符,带入签名Sign中,这突然使我有了极大的兴趣,对其进行了深度学习。下面我们一起看看这个JSON到底是什么,有什么作用:
第一:JSON语法规则

1:对象表示为键值对
2:数据由逗号分隔
3:花括号保存对象
4:方括号保存数组


第二:JSON 键/值对
百度上说JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
{"firstName": "Json"}
这很容易理解,等价于这条 JavaScript 语句:
{firstName : "Json"}

其实在我看来json键值对就是一种映射关系,如同我们在controller层map.put("firstNmae","json")写法,它的这种表达方式,让机器更加容易解析和生成,大大提高了信息的传输速率并且降低了资源的浪费。

第三:JSON 与 JS 对象的关系


很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

扫描二维码关注公众号,回复: 819815 查看本文章
json与对象之间的转换其实也很简单,比如我在项目中遇到controller层test时的一个转换如下:

Transaction test = new Transaction();
String jsonstr = JSONObject.toJSONString(test);
String calc_sign = SignUtil.sign(jsonstr,  signCfg.getSecret(), timestr);
首先实例化一个对象,然后将其转化为json的string用于数据验证,这就显得简单通俗易懂。

官方文档链接如下:

http://www.json.org/


(此文章存属个人见解,大神勿喷,谢谢)

猜你喜欢

转载自blog.csdn.net/cgd_programlife/article/details/79574015