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 相关文章推荐
基于Jquery的温度计动画效果
Jun 18 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
Nov 04 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
纯js实现倒计时功能
Jan 06 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 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判断是否微信访问的方法示例
2019/03/27 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解Python中for循环的使用
2015/04/14 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
python读取Kafka实例
2019/12/23 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
python 爬取小说并下载的示例
2020/12/07 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
文员自我评价怎么写
2013/09/19 职场文书
考博自荐信
2013/10/25 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
有趣的广告词
2014/03/18 职场文书
献爱心倡议书
2014/04/14 职场文书
给校长的建议书300字
2014/05/16 职场文书
环保宣传标语
2014/06/12 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
房贷收入证明范本
2015/06/12 职场文书
分享Python异步爬取知乎热榜
2022/04/12 Python