Json-数据交换语言

作者: 一曲广陵散 | 来源:发表于2016-06-02 10:47 被阅读105次

综览

JSON,javascript object notation是一种由道格拉斯·克罗克福特构想设计,轻量级的数据交换

语言,以文字为基础,易于让人阅读,

json是一个javascript的一个子集,但独立于语言的文本格式,采用了类似c语言家族的一些习惯
Douglas Crockford.png

产生时间:1999年

发展过程

JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合 可以在javascript以eval()函数读入(javascript通过eval()调用解释器) 几乎所有与网页开发相关的语言都有JSON库

存在格式

json用于描述数据结构,有以下形式存在 (1) object,对象:一个对象以“{”开始,并以“}”结束。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用“,”分区。 (2) collection,名称/值:名称和值之间使用“:”隔开,一般的形式是: {name:value},其中一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布尔值,一个有序列表,或者一个null值。 (3) 值的有序列表(Array):一个或者多个值用“,”分区后,使用“[”,“]”括起来就形成了这样的列表,形如: [collection, collection] (4) 字符串:以""括起来的一串字符。 (5) 数值:一系列0-9的数字组合,可以为负数或者小数。还可以用“e”或者“E”表示为指数形式。 (6) 布尔值:表示为true或者false。

实例.png

运用

WEB开发 JSON最开始被广泛的应用于WEB应用的开发。不过目前JSON使用在JavaScript,Java,Node.js应用的状况比较多,PHP,C#等开发的WEB应用主要还是使用XML。 NoSQL数据库 相对于传统的关系型数据库,一些基于文档存储的NoSQL非关系型数据库选择JSON作为其数据存储格式,比较出名的产品有:MongoDB,CouchDB,RavenDB等。

安全性

读取JSON

由于json是javascript的子集,所以一般会使用eval()作为读取数据的方式,如果是针对可靠的数据来源,在不支持原生JSON解析的浏览器上面这是最快速的方法。然而由于eval方法同样可以执行任意的JavaScript代码,因此当数据来源不可靠时则可能产生安全性问题。 其中一种防止不安全代码出现的解决办法,是通过浏览器原生支持的JSON.parse(str)方法读取JSON数据,目前已经得到大部分主流浏览器的支持(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生JSON对象的浏览器上面可以使用parseJSON方法进行读取,parseJSON 采用解析器验证读入的代码是否真的是JSON代码,这样就提供了较好的安全性。但由于这是用模拟的方式读取,速度上会比eval()慢

跨站访问问题

跨站请求伪造(Cross-site request forgery,简称CSRF或XSRF)。这个问题在Javascript中的状况是,由于Javascript采用了称为沙盒的机制,这种机制限制Javascript引擎仅能引入同一个站点的代码,因而某种程度上提高了安全性。

引用
维基百科

相关文章

  • Json-数据交换语言

    综览 产生时间:1999年 发展过程 JSON格式是1999年《JavaScript Programming La...

  • Python-JSON

    JSON-一种轻量级的数据交换格式。 JSON用途 结构简单,多用于网络数据传输,提高传输效率。 可以直接保存di...

  • JSON数据和OC的一一对应关系?

    JSON数据和OC对象的一一对应关系?JSON->OC JSON数据转化为Plist? JSON->Plist

  • Json

    Json:数据交换格式中的一种 数据交换格式有三种:Json/XML/Protobuffer 特点:独立于编程语言...

  • XML语言概要

    引言 XML是一种数据交换格式。两个人聊天,采用彼此都听得懂的语言,数据交换格式就是计算机或程序之间交流的语言。数...

  • 当前较为流行的数据交换格式

    数据交换格式就像两个人在聊天, 采用彼此都能听得懂的语言其中的语言就相当于数据交换格式,它通过文本以特定的形式来进...

  • JSON

    JSON JavaScript Object Notation JSON.parse(test) JSON->JS...

  • Python模块·Json数据交换格式

    一、Json简介: JSON 是一种轻量级的数据交换格式。 数据交换格式是不同平台、语言中进行数据传递的通用格式 ...

  • Protobuf学习记录

    简介 protoBuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言...

  • 【socket】- Protobuf数据协议使用

    简介 Protobuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言...

网友评论

    本文标题:Json-数据交换语言

    本文链接:https://www.haomeiwen.com/subject/kdxkdttx.html