JSON 与 JS 对象的区别与对比
定义:
JSON是什么?JSON是JS的一种简单数据格式,JSON是JavaScript原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号。
问题:
JSON是什么?(JSON和JavaScrip对象有什么区别?)如何把JS对象转换位JSON字符串又如何把JSON字符串转换成JavaScript对象?
答:JSON (JavaScript Object Notation) 一种简单的数据格式,比Xml更轻巧。JSON 是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API 或者工具包。JSON的规则很简单:对象是一个无序的“名称/值”对集合。一个对象以"{"(左括号)开始,“}”(右括号)结束。每个"名称"后跟一个":"(冒号);“名称/值”对之间使用","(逗号)分隔。
它是一种严格的JS对象的格式,JSON属性名称必须有双引号,如果值是字符串,也必须是双引号;
JSON只是一种数据格式;
<script>
var obj ={};//这只是JS对象
var obj1={width:100,height:200}//JS对象
var obj2={'width':100,'height':100}//JS对象
var obj3={"width":100,"height":100,"name":"rose"}//JSON格式的JS对象
var obj4='{"width":100,"height":200,"name":"rose"}'
;
/*我们可以把这个称做:JSON格式的字符串 */
var array=[
{
"width"
:100,
"height"
:200,
"name"
:
"rose"
},
{
"width"
:100,
"height"
:200,
"name"
:
"rose"
},
{
"width"
:100,
"height"
:200,
"name"
:
"rose"
},
]
/*这个叫JSON格式的数组,是JSON的稍复杂一点的形式 */
var
arrayStr=
'['
+
'{"width":100,"height":200,"name":"rose"},'
+
'{"width":100,"height":200,"name":"rose"},'
+
'{"width":100,"height":200,"name":"rose"},'
+
']'
;/* 这个叫稍复杂一点的JSON格式的字符串 */
区别 | JSON | Javascript |
含义 | 仅仅是一种数据格式 | 表示类的实例 |
传输 | 可以跨平台数据传输,速度快 | 不能传输 |
表现 |
1.简直对方式,键必须加双引号 2.值不能是方法函数,不能是undefined/NaN |
1.键值对方式,键不加引号 2.值可以是函数、对象、字符串、数字、boolean 等 |
相互转换 |
Json转换Js对象 1.JSON.parse(JsonStr);(不兼容IE7) 2.eval("("+jsonStr+")");(兼容所有浏览器,但不安全,会执行json里面的表达式?) |
js对象转换Json JSON.stringify(jsObj); |
其他 | 调用JSON官网的JS,实现parse和stringify在哥哥浏览器的兼容: |
总而言之你可以理解为JSON是JS下的一种数据格式,他从属于JS,并且在处理JSON数据时可直接使用JS内置API
JSON 与 JS 对象的区别与对比的更多相关文章
- JSON与JS对象的区别
<script> var obj2={};//这只是JS对象 var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */ var ...
- 理清JS数组、json、js对象的区别与联系
最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了.于是,为了理清这些东西,有了如下这篇文章.觉得没问题的猿们可以当复习,而那些带着疑问 ...
- json转js对象方法,JS对象转JSON方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JSON 与 JS 对象的关系
很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚.简单来说: JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串. 如 var obj ...
- JavaScript:JSON 和 JS 对象
区别 JSON(JavaScript Object Notation)仅仅是一种数据格式(或者叫数据形式).数据格式其实就是一种规范,按照这种规范来存诸和交换数据.就好像 XML 格式一样. 区别 J ...
- JSON与js对象序列化
JavaScript对象表示法(JavaScript Object Notation,简称JSON)是一种轻量级的数据交换格式,它基于js字面量表示法,是js的一个子集.虽然是一个js的子集但是他与语 ...
- java:JQuery(声明,JQ和JS对象的区别,prop,attr,addClass,offset,trigger,dblclick和change事件,hide,show,toggle,slideUp,slideDown,slideToggle,三种选择器,标签的获取,三张图片的放大与缩小)
1.JQuery: jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计 的宗旨是“ ...
- JSON和JS对象之间的互转
1. jQuery插件支持的转换方式 $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2. 浏览器支持的 ...
- JSON和JS对象之间的互转(转)
文章出处:http://www.cnblogs.com/dyllove98/p/4235909.html 1. jQuery插件支持的转换方式 $.parseJSON( jsonstr ); //jQ ...
随机推荐
- mac 下SonarQube 安装与使用
参考文件:https://www.jianshu.com/p/aa863cf30406 https://www.jianshu.com/p/b41262fca5b8 jenkins 集成Sonar: ...
- unittest测试套件
测试套件就是测试集,测试集是测试用例的集合. a.按用例顺序执行(addtest) 当addtest与unittest的测试规则冲突时,仍然按照ASCII码的顺序执行. import unittest ...
- 适配iOS11
总结在iOS11系统中出现的适配问题: 启动app发现上下有空隙,不能完全贴合屏幕----- 解决方案:添加一张尺寸为1125x2436的启动图. 隐藏导航栏的界面,会出现无法贴合屏幕顶部(一般来说, ...
- VBS列出windows更新列表
Set objSession = CreateObject("Microsoft.Update.Session") Set objSearcher = objSession.Cre ...
- css常用命名
常用的CSS命名 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体佈局宽度:wrapper 左右中 ...
- [Swift]LeetCode611. 有效三角形的个数 | Valid Triangle Number
Given an array consists of non-negative integers, your task is to count the number of triplets chose ...
- [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...
- 什么是“闭包”(closure)为什么要用它?
什么是闭包: 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方 ...
- vue-cli中webpack配置详解
vue-cli是构建vue单页应用的脚手架,命令行输入vue init <template-name> <project-name>从而自动生成的项目模板,比较常用的模板有we ...
- WARNING: 'aclocal-1.14' is missing on your system.
源码安装zabbix agent时进行到make install时报如下错误: WARNING: 'aclocal-1.14' is missing on your system. You shoul ...