JSON是JavaScript Object Notation的简称,是一种轻量级的数据交换格式。

JSON使用JS的语法,但其格式只是一个文本,可以被任何编程语言读取病作为数据格式传递。

JSON以JS中对象的形式存储数据,允许数据结构、字符串、数字、boolean和对象的任意组合。

 {"employees":[ 
//对象employees中有三个员工记录,以数组的形式存储
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}

JSON语法规则:

(1)数据为 键/值 对的形式

(2)数据由逗号分隔

(3)大括号保存对象

(4)方括号保存数组

数据(一个名称对应一个值):键/值 对包括字段名称,用双引号包起来,后面一个冒号,然后是值,ex:"firstName":"John"

对象:保存在大括号中,对象内部也可以保存多个 键/值 对。

ex:{"firstName":"John", "lastName":"Doe"}

数组:保存在中括号内,数组中也可以包含对象,

ex:"employees":[
    {"firstName":"John", "lastName":"Doe"},

    {"firstName":"Anna", "lastName":"Smith"},

    {"firstName":"Peter", "lastName":"Jones"}

]

JSON字符串转化为JS对象:

通常我们从服务器中读取JSON数据并在网页上显示。简单起见,在网页中设置JSON字符串。

(1)创建JavaScript字符串,字符串为JSON格式的数据。

 var text = '{ "employees" : [' +
//将各个部分用单引号包起来变成字符串,用+号进行字符串连接
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';

(2)使用JS的内置函数JSON.parse( )将字符串转化为JS对象:

var obj = JSON.parse(text);

(3)最后在页面中使用新的JS对象:

 <p id="demo"></p>

 <script>
document.getElementById("demo").innerHTML = obj.employees[1].firstname + " " + obj.employees[1].lastname;
//访问对象obj中employees中第二个元素对象的firstname和lastname属性值
//employees在创建时是一数组的形式创建的,所以employees[1]表示取数组中的第二个值
</script>

获取JSON属性值:

 var myStorage = {
"car": {
"inside": {
"glove box": "maps",
"passenger seat": "crumbs"
},
"outside": {
"trunk": "jack"
}
}
}; var gloveBoxContents = myStorage.car.inside["glove box"];
//对于单词的可以用点操作直接获取,遇到多个单词和空格组合的属性名使用方括号

JSON集合操作:

 var collection = {
2548: {
album: "Slippery When Wet",
artist: "Bon Jovi",
tracks: [
"Let It Rock",
"You Give Love a Bad Name"
]
},
2468: {
album: "1999",
artist: "Prince",
tracks: [
"1999",
"Little Red Corvette"
]
},
1245: {
artist: "Robert Palmer",
tracks: [ ]
},
5439: {
album: "ABBA Gold"
}
}; var collectionCopy = JSON.parse(JSON.stringify(collection)); function update(id, prop, value) { if (value !== '' && prop != 'tracks') {
collectionCopy[id][prop] = value;
} else if(value !== '' && prop == 'tracks'){
collectionCopy[id][prop].push(value);
} else {
delete collectionCopy[id][prop];
} return collection;
} update(5439, "artist", "ABBA");

demo

JavaScript入门学习笔记(JSON)的更多相关文章

  1. JavaScript入门-学习笔记(一)

    JavaScript入门(一) 学习js之前,我们先来了解一下,什么是JavaScript? JavaScript是一种解释型语言.在运行的时候,一边读一边编译一边执行.简单来说就是,在执行js代码时 ...

  2. javascript入门学习笔记2

    JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 实例 var x // x 为 undefined var x = 6; // x 为数字 var x = "Bil ...

  3. javascript入门学习笔记

    <button type="button" onclick="alert('Welcome!')">点击这里</button>alert ...

  4. JavaScript入门学习笔记(异常处理)

    try:语句测试代码块的错误,当try中的代码块出错时执行catch中的代码块. catch:语句处理错误: throw:语句创建或抛出自定义异常. 三者一起使用可以控制程序流并生成自定义异常信息. ...

  5. JavaScript入门学习笔记(二)

    JavaScript运算符: 算术运算符.赋值运算符和字符串连接运算符. 算法运算符与复制运算符用法参照Java: 字符串运算符: +运算符用于把文本值或字符串变量连接起来,适用于两个或更多字符串变量 ...

  6. JavaScript入门学习笔记(一)

    W3cJavaScript教程 JS是JavaScript的缩写,而JSP是Java Server Page的缩写,后者是用于服务器的语言. JavaScript代码写在标签<script> ...

  7. JavaScript入门-学习笔记(二)

    关于js变量 变量,就是一个用来存储数据的容器 一般来说,我们的变量都是可以得先声明,再使用,就像是一个东西先必须存在,才能看得见摸得着.然而在js里(es5),可以先使用,后声明. a = 100; ...

  8. JavaScript入门学习笔记(表单验证)

    表单验证: 在数据被送到服务器之前对HTML表单中的输入数据进行验证,避免服务器频繁验证信息造成用户体验差. (1)表单数据是否为空 (2)输入的信息格式是否正确 (3)输入数据的类型是否正确 必填( ...

  9. Three入门学习笔记整理

    一.官方网站:https://threejs.org 二.关于Three.js 三.开始 四.实例 基本结构 结果 五.概念 坐标系 场景 相机 灯光 3D模型 六.简单动画 七.交互控制 结束 # ...

随机推荐

  1. 原生js设置rem

    使用rem是为了界面响应不同尺寸的手机,引入下面的方法就可以使用rem了. setFontSize: function (doc, win) { var docEl = doc.documentEle ...

  2. java valueOf()函数

    valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等. 该方法是静态方法.该方法可以接收两个参数一个是字符串,一个是基数. 语法 该方法有以下 ...

  3. MD 的常用语法格式

    参考资料:MarkDown 语言常用语法 注意:vscode 中,可以使用 ctrl + shift + v 进行预览: 一.标题 一般使用 # 来进行层级标识.共 6 个层级,再多不识别. #  = ...

  4. 基于maven的spring-boot的pom文件详解

    Spring Boot 推荐的基础 POM 文件 名称 说明 spring-boot-starter 核心 POM,包含自动配置支持.日志库和对 YAML 配置文件的支持. spring-boot-s ...

  5. shell之数组和关联数组

    数组和关联数组 #!/bin/bash #定义数组1 array_var1=(1 2 3 4 5 6)# #定义数组2 array_var[0]="test1" array_var ...

  6. [powershell] 批量重命名,修改文件名中的部分字符串

    实例:替换一个目录下所有的字幕文件从720p到1080p ls $Path -Recurse |ForEach-Object{Rename-Item $_.FullName $_.FullName.R ...

  7. 洛谷P4155 BZOJP4444 [SCOI2015]国旗计划

    自己做出来的第一道倍增(fake) 原题链接 看到题目,贪心水题!不仅思维难度低,代码也好(难)写,三下五除二就写了出来,过了样例.但是一交,只有40pts.一道紫题能让我快速水40pts,良心出题人 ...

  8. Django---ORM框架

    一.get请求和post请求 GET请求: 1. 浏览器请求一个页面2. 搜索引擎检索关键字的时候 POST请求:1. 浏览器向服务端提交数据,比如登录/注册等 HTTP中GET与POST的区别 ht ...

  9. WEB-INF 目录

    WEB-INF 目录是必须的,其中包括: web.xml 文件,该 Web 基本配置,必须. classes 目录,存放 .class 文件,当然也可以将 .java 文件一并放进去. lib 目录, ...

  10. jmeter将上一个接口返回值作为下一个接口的请求参数

    在jmeter中有时候会用到,将上一个接口的返回值作为下一个接口的请求参数 具体操作如下: 1.首先新建一个http请求(右键线程组--添加Sampler--http请求),同时添加好接口相应的请求参 ...