详细说一下有关json的相关知识:

㈠json与xml的异同

★与 XML 相同之处

⑴JSON 是纯文本

⑵JSON 具有"自我描述性"(人类可读)

⑶JSON 具有层级结构(值中存在值)

⑷JSON 可通过 JavaScript 进行解析

⑸JSON 数据可使用 AJAX 进行传输

★与 XML 不同之处

⑴没有结束标签

⑵读写的速度更快

⑶能够使用内建的 JavaScript eval() 方法进行解析

⑷使用数组

⑸不使用保留字

⑹更短

 

㈡JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

例如:"name":"小明"

 

㈢JSON 值

⑴数字(整数或浮点数)

⑵字符串(在双引号中)

⑶逻辑值(true 或 false)

⑷数组(在中括号中)

⑷对象(在大括号中)

⑸null

 

分别具体说一下

⒈.JSON 数字可以是整型或者浮点型:

{ "age":18}

⒉.JSON 对象

JSON 对象在大括号({})中书写:对象可以包含多个名称/值对:

{ "name":"百度" , "url":"www.baidu.com" }

⒊.JSON 数组

JSON 数组在中括号中书写:数组可包含多个对象;

具体示例如下图所示:

在上面的例子中,对象 "sites" 是包含三个对象的数组。每个对象代表一条关于某个网站(name、url)的记录。

 

⒋.json的逻辑值(true 或 false)

例如:{ "flag":true }

⒌.JSON 的null值

例如:{ "baidu":null }

 

㈣JSON 使用 JavaScript 语法

⑴因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

  通过 JavaScript,可以创建一个对象数组,并像这样进行赋值:

 

⑵可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

①sites[0].name;    返回的内容是:百度

②可以像这样修改数据:sites[0].name="百度;

 

代码及效果如下图所示:

 

 ㈤JSON 对象

⑴对象语法

示例:{ "name":"baidu", "alexa":10000, "site":null }

①JSON 对象使用在大括号({})中书写。

②对象可以包含多个 key/value(键/值)对。

③key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

④key 和 value 中使用冒号(:)分割。

⑤每个 key/value 对使用逗号(,)分割。

 

⑵访问对象值

①你可以使用点号(.)来访问对象的值:

代码示例及结果演示:

 效果图如下:

②你也可以使用中括号([])来访问对象的值:

代码示例及结果演示:

 ⑶循环对象

①你可以使用 for-in 来循环对象的属性:

代码示例及结果演示:

②在 for-in 循环对象的属性时,使用中括号([])来访问属性的值:

嵌套 JSON 对象

JSON 对象中可以包含另外一个 JSON 对象:

你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。

代码示例及结果演示:

⑸修改值

①你可以使用点号(.)来修改 JSON 对象的值:

myObj.sites.site1 = "www.google.com";

②你可以使用中括号([])来修改 JSON 对象的值: 

myObj.sites["site1"] = "www.google.com";

 

⑹删除对象属性

①我们可以使用 delete 关键字来删除 JSON 对象的属性:

delete myObj.sites.site1;

②你可以使用中括号([])来删除 JSON 对象的属性:

delete myObj.sites["site1"]

 

㈥JSON 数组

⑴数组作为 JSON 对象

[ "Google", "Baidu", "Taobao" ]

①JSON 数组在中括号中书写。

②JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

③JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined

 

⑵JSON 对象中的数组

对象属性的值可以是一个数组:

{ "name":"网站",

"num":3,

"sites":[ "Google", "Baidu", "Taobao" ] }

 

⑶循环数组

①你可以使用 for-in 来访问数组:

for (i in myObj.sites) {

x += myObj.sites[i] + "<br>";

}

②你也可以使用 for 循环:

for (i = 0; i < myObj.sites.length; i++) {
x += myObj.sites[i] + "<br>";
}

 

⑷嵌套 JSON 对象中的数组

JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象:

我们可以使用 for-in 来循环访问每个数组:

代码以及运行结果如图所示:

⑸修改数组值

你可以使用索引值来修改数组值:

myObj.sites[1] = "Github";

删除数组元素

我们可以使用 delete 关键字来删除数组元素:

delete myObj.sites[1];

参考:菜鸟教程:json教程

   希望有所帮助。

json的值键对,对象,数组,逻辑值的更多相关文章

  1. 解决el-checkbox-group 的v-model无法绑定对象数组

    elementUI官方文档中el-checkbox-group组件绑定的都为一维数组,真实业务中数据绑定往往是多个键值对的对象数组,本文主要解决这个问题. 如下代码: <el-checkbox- ...

  2. php将对象数组转成普通数组

    不知道为什么,把数组序列化为json,然后存到redis(string类型).然后再取出来反序列化为数组,就变成对象数组了 thinkPHP普通数组取值$arr['key'] 对象数组取值$arr-& ...

  3. Jquery-根据标签的name属性,获取其value值。存入对象并且转换为Json数组

    <li id="testinput" name="testinput" value="1" />分类1:标签1</li&g ...

  4. for in 循环获取json中的键(key)与值(value)

    一 .for in 循环 1.获取json中的键(key)与值(value): var data = {name:'张三',age:'20岁',sex:'男'}; for (var a in data ...

  5. 对象、对象数组、JSON、JSON数组的相关操作

    本文主要是对JS操作JSON的要领做下总结在JSON中,有两种结构:对象和数组 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号):“"名称/值& ...

  6. json数组对象和对象数组(转)

    转自:http://www.cnblogs.com/zhangji/archive/2011/09/02/2163811.html 一.Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型 ...

  7. 转 json数组对象和对象数组

    一.Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词. 第 ...

  8. spring MVC 如何接收前台传入的JSON对象数组并处理

    spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json  即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...

  9. spring MVC 如何接收前台传入的JSON对象数组

    spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json  即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...

随机推荐

  1. luoguP3390(矩阵快速幂模板题)

    链接:https://www.luogu.org/problemnew/show/P3390 题意:矩阵快速幂模板题,思路和快速幂一致,只需提供矩阵的乘法即可. AC代码: #include<c ...

  2. Linux的桌面环境gnome、kde、xfce、lxde 等等使用比较

    如果不是加入了图形界面,微软的Windows系列操作系统不会成功地占领计算机桌面这块高地.这种人机交换的图形化界面,使得界面更加直观.简易.而且更人性化,同时也大大减少了使用者的认知负担,普通用户无需 ...

  3. 设计模式:备忘录模式(Memento)

    个人比较喜欢玩单机游戏,什么仙剑.古剑.鬼泣.使命召唤.三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好.场面大.爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的 ...

  4. Java代码 简单用于处理和数据库相关的操作

    package util; import org.apache.commons.beanutils.BeanUtils; import java.lang.reflect.InvocationTarg ...

  5. 链表-简单练习题1-数据结构实验之链表一:顺序建立链表 SDUT2117

    Problem Description 输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据. Input 第一行输入整数的个数N:第二行依次输入每个整数. Output 输 ...

  6. JS中的继承(下)

    JS中的继承(下) 在上一篇 JS中的继承(上) 我们介绍了3种比较常用的js继承方法,如果你没看过,那么建议你先看一下,因为接下来要写的内容, 是建立在此基础上的.另外本文作为我个人的读书笔记,才疏 ...

  7. py2 json字符串转字典去掉前缀u

    def unicode_convert(input): if isinstance(input, dict): return {unicode_convert(key): unicode_conver ...

  8. 设置adb shell的环境变量

    1.设置adb系统变量 adb  D:\androidStudio\platform-tools;D:\androidStudio\tools 2.设置path系统变量 path D:\android ...

  9. SQLServer 存储过程详解

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  10. mybatis和spring的整合

    Mybatis与Spring的集成 1.配置Spring环境 创建maven工程 pom.xml导入依赖 <project xmlns="http://maven.apache.org ...