JSON教程[通俗易懂]

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage, StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,…

大家好,又见面了,我是你们的朋友全栈君。

JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming LanguageStandardECMA-262 3rd Edition – December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(Acollection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyedlist),或者关联数组 (associativearray)。

值的有序列表(Anordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

JSON教程[通俗易懂]

数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

JSON教程[通俗易懂]

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

JSON教程[通俗易懂]

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

JSON教程[通俗易懂]

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

JSON教程[通俗易懂]

空白可以加入到任何符号之间。 

一、什么是 JSON

·        JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

·        JSON 是轻量级的文本数据交换格式

·        JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

·        JSON 具有自我描述性,更易理解

 

二、与 XML 相同之

·        JSON 是纯文本

·        JSON 具有”自我描述性”(人类可读)

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

·        JSON 可通过 JavaScript 进行解析

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


三、与 XML 不同之

·        没有结束标签

·        更短

·        读写的速度更快

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

·        使用数组

·        不使用保留字


四、为什么使用 JSON

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

使用 XML

·        读取 XML 文档

·        使用 XML DOM 来循环遍历文档

·        读取值并存储在变量中

使用 JSON

·        读取 JSON 字符串

·        用 eval() 处理 JSON 字符串

五、JSON 语法规则

JSON 法是 JavaScript 象表示法的子集。

·        数据在名称/值对中

·        数据由逗号分隔

·        大括号保存对象

·        中括号保存数组

六、JSON 名称/值对

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

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

“firstName”: “John”

很容易理解,等价于 JavaScript 句:

firstName =”John”


七、JSON

JSON 可以是:

·        数字(整数或浮点数)

·        字符串(在双引号中)

·        逻辑值true 或 false

·        (在中括号中)

·        象(在大括号中)

·        null


八、JSON 数字

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

{
age:30}


九、JSON

JSON 象在大括号({})中写:

象可以包含多个名称/值对

{ “firstName”:“John”,“lastName”:“Doe”}

一点也容易理解,与 JavaScript 句等价:

firstName =”John”

lastName =”Doe”

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

象可以包含多个 key/value/

key 是字符串,value 可以是合法的 JSON 数据型(字符串, 数字, , , 尔值 null)。

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

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

2.访问对象值

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

实例

varmyObj, x;

myObj = {

                   name:google,

                   alexa:10000,

                   site:null};

x = myObj.name;

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

实例

varmyObj, x;

myObj = {

                   “name:google,

                   alexa:10000,

                   site:null};

x = myObj[name];

3.循环对象

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

实例

varmyObj = {

                   name:google,

                   alexa:10000,

                   site:null

};

for(xinmyObj){

                   document.getElementById(demo).innerHTML += x + <br>;

 }

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

实例

varmyObj = {

                   “name:google,

                   “alexa:10000,

                   “site:null

};

for(xinmyObj){

                   document.getElementById(demo).innerHTML += myObj[x] + <br>;

}

4.嵌套 JSON 对象

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

实例

myObj = {

                   name:google,

                   “alexa:10000,

                   “sites: {

                                     “site1:www.google.com,

                                     “site2:m.google.com,

                                     “site3:c.google.com

                   }

}

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

实例

x = myObj.sites.site1; // 或者x = myObj.sites[site1];

5.修改值

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

实例

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

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

实例

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

6.删除对象属性

可以使用 delete 字来 JSON 象的属性:

实例

deletemyObj.sites.site1;

你可以使用中括号([]) JSON 象的属性

实例

deletemyObj.sites[site1]

 


十、JSON

JSON 在中括号中写:

可包含多个象:

{

              “employees”:[

                            {
“firstName”:”John”,“lastName”:“Doe”},

                            {
“firstName”:“Anna”,“lastName”:“Smith”},

                            {
“firstName”:“Peter”,“lastName”:“Jones”}

                   ]

}

在上面的例子中,“employees” 是包含三个象的数。每个象代表一条关于某人(有姓和名)的记录
JSON 在中括号中

JSON 中数组值是合法的 JSON 数据型(字符串, 数字, , , 尔值 null)。

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

1.JSON 对象中的数组

象属性的可以是一个数

实例

{

        name:网站,

        num:3,

        sites:[Google, Runoob, Taobao]

}

可以使用索引访问

实例

x = myObj.sites[0];

2.循环数组

你可以使用 for-in 访问

实例

for(iinmyObj.sites){

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

}

你也可以使用 for

实例

for(i = 0; i < myObj.sites.length; i++){

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

}

3.嵌套 JSON 对象中的数组

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

实例

myObj = {

        name:网站,

        num:3,

        sites: [

        {

                name:Google,

                info:[Android, Google 搜索, Google ]

        },  

        {

                name:Taobao,

                info:[淘宝, ]

        }]

}

可以使用for-in 来循环访问每个数

实例

for(iinmyObj.sites){

        x += <h1> + myObj.sites[i].name + </h1>;

        for(jinmyObj.sites[i].info){

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

        }

}

4.修改数组值

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

实例

myObj.sites[1] = Github;

5.删除数组元素

可以使用 delete 字来除数元素:

实例

deletemyObj.sites[1];

 


十一、JSON 尔值

JSON 尔值可以是 true 或者 false

{
flag:true}


十二、JSON null

JSON 可以 null

{
name:null}


十三、JSON 使用 JavaScript

JSON 使用 JavaScript 法,所以无需外的件就能 JavaScript 中的 JSON

JavaScript,您可以建一个象数,并像这样进赋值

实例

varsites = [

              {
name:google , url:www.google.com},

              {
name:微博 , url:www.weibo.com}

];

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

sites[0].name;

返回的内容是:

runoob

可以像这样修改数据

sites[0].name=教程;

十四、JSON 文件

·        JSON 文件的文件型是 “.json”

·        JSON 文本的 MIME 型是 “application/json”

 

 

http://www.runoob.com/json/json-parse.html

http://www.runoob.com/json/json-stringify.html

http://www.runoob.com/json/json-eval.html

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125696.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 详解 误差反向传播算法推导

    详解 误差反向传播算法推导误差反向传播算法误差反向传播算法(backpropagation,简称BP模型)是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。误差反向传播算法系统的解决了多层神经网络隐含层连接权学习问题,人们把采用这种算法进行误差校正的多层前馈网络称为BP网。BP神经网络具有任意复杂的模式分类能力和…

  • Elasticsearch数据库下载

    Elasticsearch数据库下载地址:https://www.elastic.co/downloads/past-releases转载于:https://www.cnblogs.com/xueershewang/p/9792788.html

  • 移动互联网寒冬,Android 程序员的出路在哪里?

    移动互联网寒冬,Android 程序员的出路在哪里?安卓行业主要问题是初级Android太多了,会写XML和Activity的程序员太多了,初中级程序员面临很大的竞争,现状也就偏于高级开发者。越来越多的初中级Android程序员找不到满意的工作,甚至根本找不到工作!所以很多人觉得Android要凉了,甚至不惜转行,从头学其它技术。现在的Android招聘要求,已经不是多年之前的要求了。Android应用开发发展到今天,已经成为…

  • HDU 2160 母猪的故事

    HDU 2160 母猪的故事

  • mycat实现读写分离_mybatis读写分离实现

    mycat实现读写分离_mybatis读写分离实现环境:四台主机,两台mysql做主从:master和slave一台mysql做测试,ip:10.30.162.142一台mycat做读写分离,ip:192.168.122.230客户端访问mycat端的虚拟数据库mycat端虚拟数据库设定如下:user:adminpassword:redhatmycat通过一个真实数据库授过权的用户来对数据库端进行数据的操作,在这个实验中这个用户为m…

    2022年10月13日
  • 口罩预约管理系统——数据库设计(前端+PHP+MySQL)

    口罩预约管理系统——数据库设计(前端+PHP+MySQL)口罩预约管理系统(数据库设计)基本功能实现,如何结合前端基础、后端PHP和MySQL数据库实现呢?手把手教你设计数据库,搭建口罩预约管理系统,实现基本需求功能!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号