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学习笔记--数字格式类型
May 22 Javascript
jquery判断浏览器后退时候弹出消息的方法
Aug 11 Javascript
JavaScript基本语法讲解
Jun 03 Javascript
js数组去重的方法汇总
Jul 29 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
Dec 11 Javascript
BootStrap modal模态弹窗使用小结
Oct 26 Javascript
Bootstrap的class样式小结
Dec 01 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
Mar 22 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
JavaScript实时更新当前的时间的示例代码
Jul 15 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
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
简述php环境搭建与配置
2016/12/05 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
Ext 今日学习总结
2010/09/19 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python数据可视化图实现过程详解
2020/06/12 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
企业门卫岗位职责
2013/12/12 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
python 提取html文本的方法
2021/05/20 Python
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
Python函数中的不定长参数相关知识总结
2021/06/24 Python
如何使用python包中的sched事件调度器
2022/04/30 Python