JSON与JS对象的区别与对比


Posted in Javascript onMarch 01, 2017

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

JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。JSON的规则很简单: 对象是一个无序的“名称/值”对集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“名称/值”对之间使用“,”(逗号)分隔。

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

JSON只是一种数据格式(或者叫数据形式);

<script>
var obj2={};//这只是JS对象
var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */
var obj4={'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

总而言之你可以理解为JSON是JS下的一种数据格式,他从属于JS,并且在处理JSON数据时可直接使用JS内置API

Javascript 相关文章推荐
jquery animate 动画效果使用说明
Nov 04 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
Nov 11 Javascript
理解Javascript闭包
Nov 01 Javascript
推荐一个自己用的封装好的javascript插件
Jan 29 Javascript
js对字符的验证方法汇总
Feb 04 Javascript
跟我学习javascript的隐式强制转换
Nov 16 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
JavaScript鼠标特效大全
Sep 13 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
Angular2生命周期钩子函数的详细介绍
Jul 10 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 #Javascript
Angular2 路由问题修复详解
Mar 01 #Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 #Javascript
jQuery EasyUI Draggable拖动组件
Mar 01 #Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
Feb 28 #Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 #Javascript
jQuery实现ajax无刷新分页页码控件
Feb 28 #Javascript
You might like
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
Bootstrap精简教程
2015/11/27 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
js实现微信聊天界面
2020/08/09 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
python处理csv中的空值方法
2018/06/22 Python
Python csv模块使用方法代码实例
2019/08/29 Python
python中web框架的自定义创建
2019/09/08 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
Pycharm安装python库的方法
2020/11/24 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
医学生自我鉴定范文
2013/11/08 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
2014年党务公开方案
2014/05/08 职场文书
建设投标担保书
2014/05/13 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
辞职信标准格式
2015/02/27 职场文书
毕业设计致谢词
2015/05/14 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
用python批量解压带密码的压缩包
2021/05/31 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android
Linux中各个目录的作用与内容
2022/06/28 Servers