10. JSON

///【JSON是一种数据格式,不是JS 独有的】
///【JSON语法】
/*
1.数据书写格式:"name":value,JSON要求给属性名加上【双引号】,JSON不能用单引号
2.JSON值可以是:数字(整数、浮点数),字符串,布尔值(true false),数组,对象,null,注意没有undefined
3.数据由逗号分隔
4.大括号保存对象
5.中括号保存数组
*/
{
"bool":false,
"str":"string",
"num":12.3,
"null":null,
"arr":[1,"b",true],
"obj":{ //数组、对象可以任意嵌套
"a1":[1,2,3],
"a2":false
}
} ///【JSON对象】
//访问对象
alert(Jobj.name);//通过点
alert(Jobj["name"]);//通过[],同时这两种方法也可以修改 //循环对象
for(x in Jobj){
console.log(x);//注意循环出的是JSON的属性名
}
for(x in Jobj){
console.log(Jobj[x]);//通过索引来访问属性值,循环中不能通过 . 来获取属性值
} //删除对象属性
delete Jobj.name
delete Jobj["name"] //JSON对象与JSON字符串
var str = '{"name":"bin","age":20}';
var obj = {"name":"bin","age":20}; ///【解析与序列化】
//【JSON.parse()】
//JSON通常用于与服务端交换数据,接收到的服务端数据一般是字符串,可以使用JSON.parse()方法将其转换为JS对象
JSON.parse(text[,reviver]);//text是JSON字符串,reviver可选,为对象的每个成员调用此函数function(key,value){...return} //【JSON.stringify()】
//向服务器发送数据时一般是字符串,用JSON.stringify()将JSON对象转换为字符串
JSON.stringify(value,[,replacer[,space]]);//value是JSON对象,replacer function(key,value){...return} //【序列化选项】
//JSON.stringify()还可以接收另外两个参数,第一个参数是过滤器,可以是一个数组,也可以是一个函数;第二个参数是缩进选项。
//过滤结果
var book = {
"title":"book1",
year:2012,
edition:3
}
var jsonText = JSON.stringify(book,["title"]) //只保留数组内给定的属性
alert(jsonText)//{"title":"book1"} //函数形式
//该函数接收两个参数,分别是键和值,然后根据键值判断,如果返回值为 undefined,则响应的属性会被删除
var jsonText = JSON.stringify(book,function(key,value){
switch(key){
case "title":
return value;
case "year":
return value+5;
default: //必须加这个,必须返回value
return value;
}
}) //【字符串缩进】
//增加可读性
var jsonText = JSON.stringify(book,null,4)//缩进四个空格

  

10. JavaScript学习笔记——JSON的更多相关文章

  1. JavaScript学习笔记-JSON对象

    JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...

  2. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  4. JavaScript学习笔记[0]

    JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...

  5. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  6. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  7. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  8. Java程序猿的JavaScript学习笔记(3——this/call/apply)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  9. Java程序猿JavaScript学习笔记(4——关闭/getter/setter)

    计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...

随机推荐

  1. 修复PlatformToolsets丢失问题(为VS2013以上版本安装VC90,VC100编译器)

    前段时间测试VS2017的IDE时不小心弄丢了 MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets 下的VC90以及VC100的编译 ...

  2. MyEclipse不能自动编译解决办法总结

    yEclipse在debug模式下,有时会碰到修改的文件无法自动编译的问题,以下的方法可以逐一尝试一下. 1.确保:Project->build automatically 已经被选上. 2.p ...

  3. IntelliJ IDEA 2017版 SpringBoot的Json字符串返回

    一.说明 SpringBoot框架已经自动封装好json字符串解析,所以我们只需要用它的注解来返回操作就可以了. 二.实战 1.书写一个实体类User,设置属性id和name package com. ...

  4. Uploadify多文件上传插件.NET使用案例+PHP使用案例

    ploadify是一个非常好用的多文件上传插件 插件下载:http://www.uploadify.com 下载后需要用到的文件: 接下来就是直接添加代码: Default.aspx代码 <%@ ...

  5. ios10适配

    1: 去除打印多余的log信息: xcode-->Product-->Scheme-->edite Scheme 中在Ecvironment Variables 中添加OS_ACTI ...

  6. MFC中的一般经验之谈3

    Window消息可以分为三类:(1)标准Window消息(CWnd子类处理),(2)控制通知消息(CWnd子类处理),(3)命令消息(应用中的5类都可以).所有派生自CCmdObjec对象的类都可以处 ...

  7. CURL命令测试网站打开速度

    curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total} http: ...

  8. XML--修改XML数据

    DECLARE @xmlDoc XMLset @xmlDoc='<root> <book id="0001"> <title>C# Progra ...

  9. 记开发个人图书收藏清单小程序开发(五)Web开发

    决定先开发Web端试试. 新增Web应用: 选择ASP.NET Core Web Application,填写好Name和Location,然后点击OK. 注意红框标出来的,基于.NET Core 2 ...

  10. infopath 2007 升级到2013 栏目字段重复生成问题

    1. 把Expense Statement.xsn的xsn扩展名改成zip.然后解压后会看到有一个mnifest.xsf. 2. 在vs 2013 中打开它. 3. Search for the fi ...