var obj={width:100,height:200},这样的并不叫JSON,并且JSON只是一种数据格式,并不是具体的实例。

但很多人把这样的JS对象当成JSON,下面把这个问题讲清楚

一、JSON是什么?(JSONJavaScript对象有什么区别?)如何把JS对象转化为JSON字符串?又如何把JSON字符串转化为JavaScript对象?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON格式的数据,主要是为了跨平台交流数据用的。

但JSON和JavaScript确实存在渊源,可以说这种数据格式是从JavaScript对象中演变出来的,它是JavaScript的一个子集。JSON本身的意思就是JavaScript对象表示法(JavaScript Object Notation),它用严格的JavaScript对象表示法来表示结构化的数据。

它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号;

JSON只是一种数据格式(或者叫数据形式),数据格式其实就是一种规范,格式、形式、规范是不能用来存诸数据的。我们不能把以下的对象叫JSON,比如:

<script>

var obj2={};//这只是JS对象

var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */

var obj5={"width":100,"height":200,"name":"rose"}; /*我们可以把这个称做:JSON格式的JavaScript对象 */

var str1='{"width":100,"height":200,"name":"rose"}';/*我们可以把这个称做:JSON格式的字符串 */

var a=[

{"width":100,"height":200,"name":"rose"},

{"width":100,"height":200,"name":"rose"},

{"width":100,"height":200,"name":"rose"},

];

/*这个叫JSON格式的数组,是JSON的稍复杂一点的形式 */

var str2='['+

'{"width":100,"height":200,"name":"rose"},'+

'{"width":100,"height":200,"name":"rose"},'+

'{"width":100,"height":200,"name":"rose"},'+

']' ;

/*  这个叫稍复杂一点的JSON格式的字符串  */

</script>

 

JSON和JS对象对比表

区别

Json

Javascript对象

含义

仅仅是一种数据格式

表示类的实例

传输

可以跨平台数据传输,速度快

不能传输

表现

1,键值对方式,键必须加引号

2,值不能是方法函数,不能是undefined/NaN

1,键值对方式,键不加引号

2,值可以是函数、对象、字符串、数字、boolean 等

相互转换

Json转化为js对象:

1,

JSON.parse(jsonstring);

(不兼容ie7)

2,

Jsobj=eval("("+jsonstring+")");

(兼容所有浏览器,但不安全,会执行json里面的表达式?)

Js对象转换为Json:

JSON.stringify(jsobj);(不兼容ie7)

其他

调用json官网的js,实现parse  和 stringify 在各个浏览器的兼容

:https://github.com/douglascrockford/JSON-js/blob/master/json2.js

最新文章

  1. EF6.0 Code First使用mysql的各种错误和解决办法!!
  2. 读取TDrawGrid之获取博易数据
  3. Java日期时间操作的一些方法
  4. PHP中使用CURL请求页面,使用fiddler进行抓包
  5. CFNetwork的错误代码参考
  6. 扒皮下GitHub 404的图片层次轴动特效
  7. R语言介绍
  8. Google Cloud Platform
  9. jQuery里ajax的用法
  10. IOS 判断日期是今天,昨天还是明天
  11. C++函数学习笔记
  12. (step5.1.2)hdu 1305(Immediate Decodability——字典树)
  13. [技术]浅谈OI中矩阵快速幂的用法
  14. 主机管理+堡垒机系统开发:strace命令用法详解(六)
  15. 初探React Hooks &amp; SSR改造
  16. 虚拟机设置IP
  17. SSH 安全加固
  18. wap2app(十)--wap2app 添加原生底部导航,添加原生标题栏,填坑
  19. [java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!
  20. 洛谷 P1525 关押罪犯

热门文章

  1. 【Luogu】P2324骑士精神(IDA*)
  2. 对拍程序(Win)
  3. Redis的持久化——AOF
  4. Tomcat 调优技巧
  5. 标准C程序设计七---23
  6. Flink的安装配置
  7. Java教程收集
  8. 十步叫你如何无损修复硬盘锁(mbr病毒)
  9. Solidedge如何修改特征的参数
  10. C++简单实现对象引用计数示例(转)