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 相关文章推荐
通过JAVASCRIPT读取ASP设定的COOKIE
Feb 15 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
javascript showModalDialog,open取得父窗口的方法
Mar 10 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
Dec 01 Javascript
原生js实现轮播图的示例代码
Feb 20 Javascript
JavaScript递归算法生成树形菜单
Aug 15 Javascript
vue-cli中的webpack配置详解
Sep 25 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
node基于puppeteer模拟登录抓取页面的实现
May 09 Javascript
react-native android状态栏的实现
Jun 15 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
Feb 07 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python中的类学习笔记
2014/09/23 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
新闻记者实习自我鉴定
2013/09/19 职场文书
区域总监的岗位职责
2013/11/21 职场文书
美术指导求职信
2014/03/17 职场文书
机电系毕业生求职信
2014/07/11 职场文书
见习报告的格式
2014/10/31 职场文书
公证书格式
2015/01/23 职场文书
2015年党小组工作总结
2015/05/26 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
idea下配置tomcat避坑详解
2022/04/12 Servers