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 相关文章推荐
新浪中用来显示flash的函数
Apr 02 Javascript
js 多浏览器分别判断代码
Apr 01 Javascript
JavaScript 学习历程和心得分享
Dec 12 Javascript
JS获取时间的方法
Jan 21 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
解决vue的touchStart事件及click事件冲突问题
Jul 21 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 Javascript
利用vue3+ts实现管理后台(增删改查)
Oct 30 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操作文件方法问答
2007/03/16 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
Python入门篇之字符串
2014/10/17 Python
Python解析xml中dom元素的方法
2015/03/12 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
python 网络编程详解及简单实例
2017/04/25 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python中常见错误及解决方法
2020/06/21 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
小摄影师教学反思
2014/04/27 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
文员岗位职责范本
2015/04/16 职场文书
创业计划书之酒店
2019/08/30 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
app场景下uniapp的扫码记录
2022/07/23 Java/Android