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 类与静态类的实现(续)
Apr 02 Javascript
js的alert弹出框出现乱码解决方案
Sep 02 Javascript
Javascript中的Array数组对象详谈
Mar 03 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
jQuery插件windowScroll实现单屏滚动特效
Jul 14 Javascript
JavaScript中最常见的三个面试题解析
Mar 04 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
Vue项目打包编译优化方案
Sep 16 Javascript
JavaScript中时间格式化新思路toLocaleString()
Nov 07 Javascript
如何利用React实现图片识别App
Feb 18 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
php中curl使用指南
2015/02/05 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python实现获取序列中最小的几个元素
2014/09/25 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
Python如何实现单例模式
2016/06/03 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
学习委员自我鉴定
2014/01/13 职场文书
物业经理自我鉴定
2014/03/03 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
信用卡工资证明范本
2014/10/17 职场文书
小孩不笨观后感
2015/06/03 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技