JSON(一):基本语法

    JSON 即 JavaScriptObject Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。JSON 也是基于纯文本的数据格式。由于JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。

    接下来就从几方面来初步了解一下JSON。

 

    类似 XML

  • JSON 是纯文本
  • JSON 具有“自我描述性”(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript 进行解析
  • JSON 数据可使用 AJAX 进行传输

    相比 XML 的不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

    为什么使用 JSON?

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

    使用 JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串

    基本了解了JSON,接下来我们就再了解一下JSON是如何表示我们常见的数据类型:

 

    JSON 语法规则

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

    

    JSON 名称/值对

    JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"firstName" : "John"这很容易理解,等价于这条JavaScript语句:firstName = "John"

    

    JSON 值

    JSON 值可以是:

  • 数字(整数或浮点数)

    一个Number 可以根据整型或浮点数表示如下:这与绝大多数编程语言的表示方法一致,例如:12345(整数)和-3.9e10(浮点数)。


  • 字符串(在双引号中)

    用JSON 表示一个简单的 String “ abc ”,其格式为:"abc"。除了字符 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他 Unicode字符可以直接输出。


  • 逻辑值(true 或 false)

Boolean 类型表示为 true  false 


  • 数组(在方括号中)

    JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 StringNumberBoolean和一个 null

["abc",12345,false,null]


  • 对象(在花括号中)

    Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,实际上此处的 Object相当于 Java 中的 Map<String, Object>,而不是 Java Class 。注意 Key只能用 String 表示。

例如,一个Address 对象包含如下 Key-Value:city:Beijing  street:Chaoyang Road  postcode:100025(整数)

用JSON 表示如下:{"city":"Beijing","street":"Chaoyang Road ","postcode":100025}

    其中Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address对象,可以表示如下:{"name":"Michael","address":

   {"city":"Beijing","street":" ChaoyangRoad ","postcode":100025}
}


  • Null

    JavaScript中的 null 被表示为 null,注意,true、false  null 都没有双引号,否则将被视为一个 String。

 

    JSON 对象

    JSON 对象在花括号中书写:对象可以包含多个名称/值对:{ "firstName":"John" ,"lastName":"Doe" }

    这一点也容易理解,与这条JavaScript 语句等价:firstName = "John" lastName = "Doe"

    JSON 数组

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

    {
    "employees": 

    [
    { "firstName":"John" , "lastName":"Doe"},
    { "firstName":"Anna" ,"lastName":"Smith" },
    { "firstName":"Peter" ,"lastName":"Jones" }
    ]
    }

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

    需要注意的是:因为 JSON 使用JavaScript语法,所以无需额外的软件就能处理 JavaScript中的 JSON通过JavaScript,您可以创建一个对象数组,并像这样进行赋值:

    var employees = [
    { "firstName":"Bill" ,"lastName":"Gates" },
    { "firstName":"George" ,"lastName":"Bush" },
    { "firstName":"Thomas" , "lastName":"Carter" }
    ];

    可以像这样访问JavaScript 对象数组中的第一项:employees[0].lastName; 返回的内容是:Gates。也可以像这样修改数据:employees[0].lastName = "Jobs";

 

    现在大致了解了JSON的基本语法,接下来的博文会和大家一起学习如何在服务器端生成 JSON格式的数据以便发送到客户端,以及客户端如何使用 JavaScript 处理 JSON 格式的数据。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值