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代码风格指南
Sep 10 Javascript
php+ajax+jquery实现点击加载更多内容
May 03 Javascript
简介JavaScript中substring()方法的使用
Jun 06 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
Sep 04 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
微信小程序 slider的简单实例
Apr 19 Javascript
利用HBuilder打包前端开发webapp为apk的方法
Nov 13 Javascript
利用Node.js如何实现文件循环覆写
Apr 05 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
2016/12/12 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
微信小程序开发之转发分享功能
2019/10/22 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Python中下划线的使用方法
2015/03/27 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
numpy数组广播的机制
2019/07/12 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
教师辞职报告范文
2014/01/20 职场文书
办公室文员工作职责
2014/01/31 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
openstack云计算keystone组件工作介绍
2022/04/20 Servers