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 相关文章推荐
FileUpload 控件 禁止手动输入或粘贴的实现代码
Apr 07 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
jQuery判断数组是否包含了指定的元素
Mar 10 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
javaScript中的空值和假值
Dec 18 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
python虚拟环境 virtualenv的简单使用
Jan 21 Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 Javascript
JS倒计时两种实现方式代码实例
Jul 27 Javascript
React实现todolist功能
Dec 28 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
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
详细讲解JS节点知识
2010/01/31 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
javascript操作css属性
2013/12/30 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
JavaScript判断IE版本型号
2015/07/27 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
Python简单实现安全开关文件的两种方式
2016/09/19 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
浅谈django的render函数的参数问题
2018/10/16 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python实现壁纸下载与轮换
2020/10/19 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
员工三分钟演讲稿
2014/08/19 职场文书
义诊活动总结
2015/02/04 职场文书
白鹤梁导游词
2015/02/06 职场文书
表彰大会新闻稿
2015/07/17 职场文书
公司档案管理制度
2015/08/05 职场文书