专家学者对于JavaScript解释进行详细说明

开发
但是 JavaScript解释它,而且 JSON 可以表示比名称/值对更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

下面进行大致的分析JavaScript解释:JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。

这个字符串看起来有点儿古怪(稍后会看到几个示例),按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:

  1. { "firstName": "Brett" }   

这个示例非常基本,而且实际上比等效的纯文本名称/值对占用更多的空间:

  1. firstName=Brett 

但是,当将多个名称/值对串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个名称/值对的记录,比如:

  1. { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" } 

从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下JavaScript解释更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系#t#

当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称/值对(就像在本系列前面文章中看到的那种名称/值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName 这样的形式。

如果使用JavaScript解释,就只需将多个带花括号的记录分组在一起:

  1. { "people": [ { "firstName": "Brett", "lastName":"McLaughlin", 
  2. "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
  3.  { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }]}  

这不难理解。在这个示例中,只有一个名为 people 的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):

  1. { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", 
  2. "email": "brett@newInstance.com" }, { "firstName": "Jason", 
  3. "lastName":"Hunter", "email": "jason@servlets.com" }, 
  4. { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ]
  5. ,"authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  6.  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, 
  7. { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ],"musicians":
  8.  [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, 
  9. { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ]} 
责任编辑:chenqingxiang 来源: 计世网
相关推荐

2009-12-31 15:59:13

ADO.NET方案

2009-12-11 10:19:54

Visual Stud

2010-01-04 10:39:33

ADO.NET描述

2012-09-04 14:43:30

BPM炎黄盈动

2010-02-04 09:55:46

Android DEX

2010-02-22 16:40:22

Python解释器

2023-04-25 11:24:16

新华三

2009-12-14 10:19:23

.NET Framew

2009-12-01 18:07:12

VS 2003工具

2009-12-08 17:34:25

WCF的配置

2010-02-22 13:20:58

Python中文问题

2010-01-05 17:06:46

JSON 数据

2010-02-26 09:42:52

Python线程池

2009-12-29 10:45:09

ADO的连接方式

2009-12-11 14:21:55

VS2010程序

2009-12-29 15:30:15

ADO Insert

2009-12-10 14:17:51

VS2008专业版

2022-02-28 15:37:36

产业互联网安全数字产业

2010-01-05 16:12:55

Javascript匿

2009-12-07 17:46:52

WCF框架
点赞
收藏

51CTO技术栈公众号