返回介绍

使用 JSON

发布于 2025-04-26 18:09:28 字数 2295 浏览 0 评论 0 收藏

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,由 Douglas Crockford(道格拉斯·克罗克福特)设计,并在 RFC 4627 规范中描述,是 JavaScript 对象表示语法的子集。使用 JSON 比较广泛的例子就是 Web 服务的响应数据。在比较久远的时代,Web 服务使用 XML 作为其主要的数据传输格式。自从 JSON 出现后,它就因轻量的特点而被广泛应用。

JSON 建立在以下两种结构之上:

- 键值对的集合。在大多数语言中,将这种结构实现为对象、record、结构体、字典、哈希表、键列表或关联数组。

- 值的有序列表。在大多数语言中,这种结构被实现为数组、容器、列表或序列。

JSON 结构

object

array

value

string

number

下面是一个 JSON 数据的例子:

{
  "firstName": "John",
  "lastName": "Smith",
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": 10021
  },
  "phoneNumbers": [
    "212 555-1234",
    "646 555-4567"
  ]
}

在 JavaScript 中使用 JSON

在 JavaScript 中处理 JSON 时,您可能会使用 eval 函数来解析 JSON 字符串的结果,但由于安全原因并不建议直接这么做(恶意数据可以从服务器发送到客户端,然后 eval 直接执行客户端的脚本而产生有害的影响)。因此,在使用 eval 解析 JSON 之前,可以使用 Crockford 的脚本来检测 JSON 的有效性。

以下两个链接提供了 JSON 转换的文档和响应 js 的代码实现。

- http://www.json.org/js.html

- https://github.com/douglascrockford/JSON-js/blob/master/json2.js

下面介绍一个使用 JSON 解析器的例子(使用上文的 JSON 数据):

// 回调函数会在服务器接收到数据时执行


var callback = function (result) {
  var johnny = JSON.parse(result);
  // 在这里,

johnny 变量是一个包含了上面

 JSON 示例代码所有属性的对象


  alert(johnny.firstName + ' ' + johnny.lastName); // Will alert '
      John Smith'
}

JSON 解析器还提供了另一个非常有用的方法——stringify。这个方法接收一个 JavaScript 对象作为参数,返回一个 JSON 格式的字符串。这个方法在向服务器发送数据时还是很有用的:

var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
// 这个方法就会输出这样的字符串:


// "name":"Andreas", "surname":"Grech", "age":20

上面提到的两个方法(parse 和 stringify)也接收一个函数作为第二参数。这个函数递归处理 JSON 对象的每个键值对,并将处理的结果返回。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。