游戏开发之旅-JSON对象

本节是第四讲的第十七小节,上一节我们为大家介绍了JavaScript原型式继承的相关属性以及方法,本节为大家介绍与服务器交换的常用数据格式JSON。

使用JSON

JavaScript对象表示法(JSON)是用于将结构化数据表示为JavaScript对象的标准格式,通常用于在网站上表示和传输数据(例如从服务器向客户端发送一些数据,因此可以将其显示在网页上)。

JSON(JavaScript Object Notation-JavaScript对象表示法)

JSON 是一种按照JavaScript对象语法的数据格式,这是 Douglas Crockford(JavaScript 权威专家) 推广的。虽然它是基于 JavaScript 语法,但它独立于JavaScript,这也是为什么许多程序环境能够读取(解读)和生成 JSON。

JSON可以作为一个对象或者字符串存在,前者用于解读 JSON 中的数据,后者用于通过网络传输 JSON 数据。这不是一个大事件——JavaScript 提供一个全局的 可访问的 JSON 对象来对这两种数据进行转换。

一个 JSON 对象可以被储存在它自己的文件中,这基本上就是一个文本文件,扩展名为 .json, 还有 MIME type 用于 application/json。

JSON 结构

我们已经可以推测出 JSON 对象就是基于 JavaScript 对象,而且这几乎是正确的。您可以把 JavaScript 对象原原本本的写入 JSON 数据——字符串,数字,数组,布尔还有其它的字面值对象。这允许您构造出一个对象树,如下:

{

"Name" : "Super hero",

"homeTown" : "Metro City",

"formed" : 2016,

"active" : true,

"members" : [

{

"name" : "Molecule Man",

"age" : 29,

"secretIdentity" : "Dan Jukes",

}, {

"name" : "Madame Uppercut",

"age" : 39,

"secretIdentity" : "Jane Wilson",

}]

}

如果我们要加载对象进入 JavaScript 程序,以保存为一个名为 superHeroes 对象为例,我们使用 . 或 [] 访问对象内的数据。如:superHeroes.hometown;superHeroes["active"];为了访问对象中的对象,您只需简单地链式访问(通过属性名和数组索引)。例如,访问 superHeroes 对象中的 members 数组对象的第二个元素的 age属性,可以用superHeroes["members"][1]["age"]。

JSON 数组

我们已经可以推测出 JSON 对象就是基于 JavaScript 对象,而且这几乎是正确的——我们说几乎正确的原因是数组对象也是一种合法的 JSON 对象。

如下所示,这是完全合法的 JSON。您只需要通过数组索引就可以访问数组元素,如[0]["name"]

[{

"name" : "Molecule Man",

"age" : 29,

"secretIdentity" : "Dan Jukes",

},

{

"name" : "Madame Uppercut",

"age" : 39,

"secretIdentity" : "Jane Wilson",

}]

其他注意事项

JSON 是一种纯数据格式,它只包含属性,没有方法。

JSON 要求有两头的 { } 来使其合法。最安全的写法是有两边的括号,而不是一边。

甚至一个错位的逗号或分号就可以导致  JSON 文件出错。您应该小心的检查您想使用的数据(虽然计算机生成的 JSON 很少出错,只要生成程序正常工作)。您可以通过网上的在线检查程序来检验 JSON。

JSON 可以将任何标准合法的 JSON 数据格式化保存,不只是数组和对象。比如,一个单一的字符串或者数字可以是合法的 JSON 对象。虽然不是特别有用处……

不像 JavaScript 标识符可以用作属性,在 JSON 中,只有字符串才能用作属性。

对象和文本间的转换

我们接收到一些字符串作为 JSON 数据,然后我们想要将它转换为对象。当我们想要发送 JSON 数据作为信息,我们将需要转换它为字符串,我们经常需要正确的转换数据,幸运的是,这两个问题在web环境中是那么普遍以至于浏览器拥有一个内建的 JSON,包含以下两个方法。

parse(): 以文本字符串形式接受JSON对象作为参数,并返回相应的对象。。

stringify(): 接收一个对象作为参数,返回一个对应的JSON字符串。

示例如下:

var toString='{ "name" : "Chris", "age" : "38" }';

var toJSON=JSON.parse(toString);

var myJSON = { "name" : "Chris", "age" : "38" };

var myString = JSON.stringify(myJSON);

以上内容部分摘自视频课程04网页游戏编程JavaScript-17JSON对象,更多示例请参见网站示例。跟着张员外讲编程,学习更轻松,不花钱还能学习真本领。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200813A0D2DV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券