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 相关文章推荐
node.js中的fs.lstatSync方法使用说明
Dec 16 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
jquery实现移动端点击图片查看大图特效
Sep 11 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
纯原生js实现贪吃蛇游戏
Apr 16 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 Javascript
JS module的导出和导入的实现代码
Feb 25 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
Echarts如何重新渲染实例详解
May 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
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
2016/01/22 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
Python常用内置函数总结
2015/02/08 Python
Python单例模式实例详解
2017/03/01 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
浅析Python __name__ 是什么
2020/07/07 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
教师岗位职责范本
2013/12/29 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
消防演习通知
2015/04/25 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android