JSON知识点小记

什么是JSON

<strong>JSON是一种数据交换格式</strong>,数据格式是一种在不同平台间传递数据的文本格式。JSON的全称是JavaScript Object Notation(JavaScript对象表示法),表示法的意思是,用于表示数字或单词等数据的字符系统。

JSON语法

<strong>名称—值对</strong>(其中值可以是字符串、数字、布尔值[小写]、对象、数字、null[小写])
例如:<code>{"name":"Lily"}</code>
在这里要注意尽量不要使用空格和特殊字符如果想使用多单词进行命名,尽量使用驼峰命名法,同时名称和值对是字符串时要被双引号包裹(值对中出现双引号时要用反斜杠进行转义)。
多个名称—值对使用逗号隔开,例如:
<code>{"name":"Lily","age":19}</code>

JSON文件类型和媒体类型
  • 文件类型的扩展名:.json
  • 媒体类型:application/json
JSON中的安全问题
  • JSON只是文本,它本身没有威胁
  • 在JSON中不要使用顶级数组(存在于JSON名称—值对之外的位于文档最顶层的JSON数组),顶级数组是合法的JS脚本,它可以用<script>标签(<script>标签不受跨域的限制)链接并使用。
  • 对于不想公开的信息,仅允许使用POST请求(GET请求把信息直接接到URL后面,这样的方式非常不安全)
  • 仅使用JSON.parse()来解析JSON数据
JSON的序列化和反序列化

例子:创建一个XMLHttpRequest对象,并让它从指定地址中获取JSON数据

var myXMLHttpRequest=new XMLHttpRequest();
var url="http://api.openweathermap.org/data/2.5/waether?lat=35&lon=139";
myXMLHttpRequest.onreadystatechange=function(){
    if(myXMLHttpRequest.readyState===4&myXMLHttpRequest.status===200){
    var myObject=JSON.pares(myXMLHttpRequest.responseText);//反序列化 将文本转换成对象的过程
    var myJSON=JSON.stringify(myObject);//序列化 将对象转换成文本的过程
}
}
myXMLHttpRequest.open("GET",url,true);
myXMLHttpRequest.send();

反序列化

var myObject=JSON.pares(myXMLHttpRequest.responseText)

由于JSON一开始还不是对象,所以使用JSON.parse()使其变为真正的对象(JSON意为JS对象表示法,当它以JSON形式存在时,字面上表示的是以<strong>文本形式表示的一个对象</strong>
使用JQuery中jQuery.parseJSON解析JSON
<code>
var myName=jQuery.parseJSON({"name":"Lily"}")
</code>
序列化
<code> var myJSON=JSON.stringify(myObject)</code>

以上知识点摘自《JSON必知必会》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是JSON JSON是一种数据交换格式,数据格式是一种在不同平台间传递数据的文本格式。JSON的全称是Java...
    偷故事的人l阅读 319评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,367评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,200评论 0 1
  • 今天伤感忽然发现一个问题,好像身边的人都得到幸福,然而我自己却倍感孤独。 起因是,曾经追求自己的一个男孩子在朋友圈...
    3405259b3430阅读 310评论 4 1