威尼斯人线上娱乐

入门基础教程,JavaScript菜鸟教程之JSON的选取全解

29 6月 , 2019  

一、选拔的意义

在JavaScript中使用JSON数据,javascriptjson数据

JSON 是 JavaScript 原生格式,那表示 在 JavaScript 中管理 JSON
数据无需其余非常的 API 或工具包。

JSON语法

JSON创立于三种结构:

目的——名称/值对的汇集。分裂的语言中,它被清楚为目的,纪录,结构,字典,哈希表,有键列表(keyed
list),或许关联数组。八个目的以“{”(左括号)开首,“}”(右括号)甘休。各个“名称”后跟二个“:”(冒号);“‘名称/值’
对”之间利用“,”(逗号)分隔。

数组——值的雷打不动列表。在繁多语言中,它被了然为数组。一个数组以“[”(左中括号)开端,“]”(右中括号)停止。值时期利用“,”(逗号)分隔。

JSON未有变量或任何调整结构。JSON只用于数据传输。

将JSON 数据赋值给变量

举个例子说,能够创设一个新的 JavaScript 变量,然后将 JSON
格式的数码字符串直接赋值给它:

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

那非常轻松;现在 people 包蕴前边看到的 JSON
格式的数据。可是,那还非常不足,因为访问数据的办法就如还不明朗。

做客数据

就算看起来不猛烈,但是地点的长字符串实际上只是贰个数组;将这些数组放进
JavaScript
变量之后,就足以很自在地访问它。实际上,只需用点号表示法来表示数组成分。所以,要想访问
programmers 列表的第三个条文的姓氏,只需在 JavaScript
中利用上面这样的代码:

people.programmers[0].lastName;

专注,数组索引是从零起始的。所以,那行代码首先访问 people
变量中的数据;然后移动到称为 programmers 的条规,再移动到第二个记录(
[0] );最终,访问 lastName 键的值。结果是字符串值 “McLaughlin” 。

上面是行使同一变量的多少个示范。

people.authors[1].genre 
// Value is "fantasy"
people.musicians[3].lastName 
// Undefined. This refers to the fourth entry,and there isn't one
people.programmers[2].firstName 
// Value is "Elliotte"

选拔这样的语法,可以管理其余 JSON 格式的数额,而无需使用其它附加的
JavaScript 工具包或 API 。

修改 JSON 数据

正如能够用点号和括号访问数据,也足以服从同等的法门轻便地修改数据:

people.musicians[1].lastName = "Rachmaninov";

在将字符串调换为 JavaScript json
格式对象之后,就足以像这么修退换量中的数据。

注意:json 格式的对象和 json 文本是见仁见智的

var obj={name:" 张三 ","sex":' 男 '}; //json 格式的对象
var str=" { name: " 张三 " , "sex" : ' 男 ' }" ; //json 格式的字符串( json 格式的文本)

转移回字符串

自然,假设不能够轻便地将对象调换回本文提到的文本格式,那么具备数据修改都尚未太大的价值。在
JavaScript 中这种转移也很轻易:

var newJSONtext = people.toJSONString();

那样就行了!今后就获得了三个得以在另内地方选拔的文本字符串,比如,能够将它用作
Ajax 应用程序中的央浼字符串。

更关键的是,可以将其它 JavaScript 对象调换为 JSON
文本。并非只可以管理原本用 JSON 字符串赋值的变量。为了对名叫 myObject
的对象开始展览改动,只需推行一样款式的指令:

<script type="text/javascript">
function Car(make,model,year,color)
{
this.make=make; 
this.model=model; 
this.year=year; 
this.color=color;
} 
function showCar()
{
var carr = new Car("Dodge","Coronet R/T",1968,"yellow"); 
alert(carr.toJSONString()); 
}
</script>

那正是 JSON 与此外数据格式之间最大的反差。假诺选择 JSON
,只需调用三个轻松的函数,就足以拿走通过格式化的多少,能够平素采纳了。对于其他数据格式,必要在原有数据和格式化数据里面举行改动。固然使用
Document Object Model 那样的 API
(提供了将团结的数据结构转变为文本的函数),也急需学习这么些 API 并运用
API 的对象,而不是接纳原生的 JavaScript 对象和语法。

最终结论是,若是要处理多量 JavaScript 对象,那么 JSON
大致分明是三个好采用,那样就能够轻便地将数据调换为能够在呼吁中发送给服务器端程序的格式(Ajax)

JSON字符串转换为JSON对象的章程

要运用方面包车型大巴str1,必须选用下边包车型客车不二法门先转化为JSON对象:

//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

接下来,就足以这么读取:

Alert(obj.name);
Alert(obj.sex);

非常注意:借使obj本来就是三个JSON对象,那么使用eval()函数调换后(哪怕是每每改换)照旧JSON对象,然而利用parseJSON()函数管理后会有标题(抛出语法分外)。

假若你读书了本种类前面包车型大巴篇章,那么应已对数据格式有了一对一的认识。前边的小说解释了在众多异步应用程序中哪些恰本地使用纯文本和轻松的称呼/值对。能够将数据组合成上边那样的格局:

JSON 是 JavaScript 原生格式,那意味 在 JavaScript 中拍卖 JSON
数据无需其它异样的 API 或工具包。

    在异步应用程序中发送和接受信息时,可以挑选以纯文本和 XML
作为数据格式。为了越来越好的运用ajax,大家将学习一种有效的数额格式JavaScript
Object
Notation(JSON),以及如何运用它更自在地在应用程序中活动多少和对象。JSON是一种简单的数据交换格式,在一些地点,它的功能与XML非常周边,但比XML更为轻易,JSON的语法简化了数据交换的难度,而且提供了一种伪对象的法门。

您只怕感兴趣的小说:

  • js使用eval分析json实例与注意事项分享
  • java对象种类化与反系列化的暗中认可格式和json格式使用示例
  • jquery类别化form表单使用ajax提交后管理回来的json数据
  • JSON中双引号的大循环使用进度中势须要小心
  • 教您哪些采纳PHP输出汉语JSON字符串
  • JSON.parse()和JSON.stringify()使用介绍
  • 入门基础教程,JavaScript菜鸟教程之JSON的选取全解。直白在JS里创设JSON数据然后遍历使用
  • PHP中运用json数据格式定义字面量对象的艺术
  • 选拔JSON.parse将json字符串调换来json对象的时候会出错
  • Android中变化、使用Json数据实例
  • PHP使用json_encode函数时不转义汉语的化解方法
  • ASP.NET中MVC使用AJAX调用JsonResult方法并赶回自定义错误消息

JSON 是 JavaScript 原生格式,那表示 在 JavaScript 中管理 JSON
数据不要求别的非常的 API 或工具包。…

firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com

JSON语法

    Java的对象 < – >JavaScript对象(json数据格式)

那样就行了,无需再做什么样了。实际上,Web 老鸟会意识到通过 GET
央求发送的音讯正是应用这种格式。

JSON创设于二种结构:

二、JSON 基础

下一场,本类别钻探了 XML。分明,XML
获得了一定多的关心(正面和负面包车型大巴评论和介绍都有),已经在 Ajax
应用程序青海中国广播公司大使用。关于怎么着使用 XML 数据格式,能够回看
本体系前边的篇章:

目的——名称/值对的集合。区别的语言中,它被驾驭为对象,纪录,结构,字典,哈希表,有键列表(keyed
list),大概关联数组。三个对象以“{”(左括号)发轫,“}”(右括号)甘休。每一个“名称”后跟贰个“:”(冒号);“‘名称/值’
对”之间接选举拔“,”(逗号)分隔。

    简易地说,JSON 能够将 JavaScript
对象中代表的一组数据调换为字符串(伪对象),然后就能够在函数之间轻便地传递这一个字符串,只怕在异步应用程序少校字符串从
Web
客户端传递给服务器端程序。那一个字符串看起来有个别奇异(稍后汇合到多少个示范),不过JavaScript
很轻便解释它,而且 JSON
可以代表比名称/值对更眼花缭乱的结构。比方,能够表示数组和复杂的目的,而不光是键和值的简约列表。

<request>
 <firstName>Brett</firstName>
 <lastName>McLaughlin</lastName>
 <email>brett@newInstance.com</email>
</request>

数组——值的不改变列表。在大好些个语言中,它被驾驭为数组。一个数组以“[”(左中括号)先导,“]”(右中括号)甘休。值时期利用“,”(逗号)分隔。

**    关于JSON对象**

那边的数码与日前看到的一致,但是此番采纳 XML
格式。那没怎么了不起的;那只是另一种多少格式,使我们能够使用 XML
而不是纯文本和名称/值对。

JSON未有变量或其余调控结构。JSON只用于数据传输。

*威尼斯人线上娱乐,*1、使用JavaScript语法成立对象

正文商讨另一种多少格式,JavaScript Object Notation(JSON)。JSON
看起来既熟识又面生。它提供了另一种采纳,选用范围更加大总是好事情。

将JSON 数据赋值给变量


添加 JSON

譬如,能够创造三个新的 JavaScript 变量,然后将 JSON
格式的数额字符串直接赋值给它:

//定义一个函数,作为构造函数 fucntion person(name,sex) {   this.name=name;   this.sex=sex; } //创建一个实例 var p=new Person(‘张三’,’男’); //输出Person实例  alert(p.name);

在使用名称/值对或 XML 时,实际上是利用 JavaScript
从应用程序中获得数据并将数据转变到另一种多少格式。在那些处境下,JavaScript
在十分大程度上作为一种多少操纵语言,用来移动和决定来自 Web
表单的数据,并将数据转变为一种适合发送给服务器端程序的格式。

var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}

留心:通过该措施开创的对象是相似的本子对象

可是,有的时候候 JavaScript
不只有作为格式化语言应用。在那几个情况下,实际上利用 JavaScript
语言中的对象来表示数据,而不仅是今后自 Web
表单的数据放进供给中。在那几个意况下,从 JavaScript
对象中领到数据,然后再将数据放进名称/值对或 XML,就有的司空眼惯了。那时就适合使用 JSON:JSON 允许轻巧地将 JavaScript
对象转换来能够随央浼发送的多少(同步或异步都足以)。

那非常轻便;以往 people 包涵后面看到的 JSON
格式的数额。但是,那还非常不足,因为访问数据的点子就好像还不明显。

**2、从JavaScript1.2从头创建对象有了一种更迅捷的语法(Json的语法),如下:**

JSON 并不是某种魔弹;可是,它对于一些特别例外的状态是很好的精选。

访问数据

var obj={name:"张三","sex":'男'};        alert(obj.sex);  

JSON 基础

即使看起来不明白,但是上边的长字符串实际上只是三个数组;将以此数组放进
JavaScript
变量之后,就足以非常轻巧地拜会它。实际上,只需用点号表示法来代表数组成分。所以,要想拜会
programmers 列表的第多少个条目款项的姓氏,只需在 JavaScript
中运用上面那样的代码:

   关于数组

大概地说,JSON 能够将 JavaScript
对象中表示的一组数据转换为字符串,然后就足以在函数之间轻便地传递那个字符串,恐怕在异步应用程序上将字符串从
Web
客户机传递给劳务器端程序。那个字符串看起来有个别奇异(稍后会看到多少个示范),可是JavaScript 很轻易解释它,而且 JSON
可以象征比名称/值对更复杂的结构。比如,能够代表数组和复杂性的靶子,而不只是键和值的简便列表。

people.programmers[0].lastName;

1、早期的JavaScript数组

简单 JSON 示例

小心,数组索引是从零起来的。所以,那行代码首先走访 people
变量中的数据;然后移动到称为 programmers 的条规,再移动到第贰个记录(
[0] );最终,访问 lastName 键的值。结果是字符串值 “McLaughlin” 。

var arr=new Array();     arr[0]=’a’;     arr[1]=’bbc’

规行矩步最简便的款型,能够用下边这样的 JSON 表示名称/值对:

上面是行使同样变量的多少个示范。

咱俩也能够由此如下方式成立数组

{ "firstName": "Brett" } 
people.authors[1].genre 
// Value is "fantasy"
people.musicians[3].lastName 
// Undefined. This refers to the fourth entry,and there isn't one
people.programmers[2].firstName 
// Value is "Elliotte"
var arr=new Array(‘a’,’bbc’);

以此示例特别基本,而且实际比同一的纯文本名称/值对挤占更加的多的空中:

采纳那样的语法,可以处理别的 JSON 格式的数额,而没有要求利用别的附加的
JavaScript 工具包或 API 。

2、使用JSON语法,则足以经过如下形式创设数组

firstName=Brett

修改 JSON 数据

var arr=[‘a’,’bbc’];

不过,当将八个称呼/值对串在一齐时,JSON
就能够展现出它的价值了。首先,能够创设包涵多少个称呼/值对的笔录,举例:

正如能够用点号和括号访问数据,也能够依据同样的方法轻易地修改数据:

    简单JSON 示例

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }
people.musicians[1].lastName = "Rachmaninov";

遵守最轻便易行的款式,能够用上边那样的 JSON 表示名称/值对:

从语法方面来看,那与名称/值对自己检查自纠并从未相当的大的优势,但是在这种气象下 JSON
更便于选用,而且可读性更加好。举例,它明确地代表以上四个值都以一致记录的一局地;花括号使这个值有了某种联系。

在将字符串转变为 JavaScript json
格式对象之后,就足以像这么修改变量中的数据。

{"firstName":"Brett"}

值的数组

小心:json 格式的对象和 json 文本是见仁见智的

以此示例非常基本,而且事实上比同一的纯文本名称/值对占领越来越多的长空:

当必要代表一组值时,JSON
不但能够增长可读性,而且能够裁减复杂性。比方,假使您希望代表一人名列表。在
XML
中,必要多多起来标识和得了标志;即使使用标准的名称/值对(就疑似在本连串前边小说中见到的这种名称/值对),那么必须创立一种专有的多少格式,大概将键名称修改为
person1-firstName 那样的花样。

var obj={name:" 张三 ","sex":' 男 '}; //json 格式的对象
var str=" { name: " 张三 " , "sex" : ' 男 ' }" ; //json 格式的字符串( json 格式的文本)
firstName=Brett

一经利用 JSON,就只需将多个带花括号的记录分组在同步:

改动回字符串

只是,当将多个名称/值对串在一道时,JSON
就能反映出它的股票总值了。首先,能够创制包罗七个名称/值对的笔录,举例:

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

本来,要是无法轻巧地将指标转变回本文提到的文本格式,那么具备数据修改都未有太大的股票总值。在
JavaScript 中这种转移也异常粗略:

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

那简单精通。在那么些示例中,唯有多少个名字为 people
的变量,值是富含四个条约的数组,每种条款是一人的记录,在那之中包括名、姓和电子邮件地址。上边的亲自去做演示怎么样用括号将记录组合成八个值。当然,能够选取同一的语法表示七个值(各种值蕴含多少个记录):这里最值得注意的是,能够代表八个值,每种值进而富含七个值。可是还应该注意,在不一致的主条款(programmers、authors
和 musicians)之间,记录中实际上的名号/值对能够不平等。JSON
是一点一滴动态的,允许在 JSON 结构的中间改变表示数据的措施。

var newJSONtext = people.toJSONString();

    从语法方面来看,那与名称/值比较照并不曾一点都不小的优势,可是在这种情况下
JSON
更易于采用,而且可读性更加好。举个例子,它分明地球表面示以上多少个值都以一律记录的一某些;花括号使那几个值有了某种关系。

在拍卖 JSON
格式的数码时,没有索要遵守的预订义的自律。所以,在长期以来的数据结构中,能够改换表示数据的秘籍,以致足以以分裂措施意味着一致事物。

那般就行了!今后就赢得了四个足以在其余地方使用的文本字符串,举例,能够将它用作
Ajax 应用程序中的哀告字符串。

   值的数组

{ "programmers": [
 { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
 { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
 { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
 ],
"authors": [
 { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
 { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
 { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
 ],
"musicians": [
 { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
 { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
 ]
}

更主要的是,能够将其他 JavaScript 对象转变为 JSON
文本。并非只可以管理原来用 JSON 字符串赋值的变量。为了对名称叫 myObject
的目的进行调换,只需进行同样款式的下令:


在 JavaScript 中使用 JSON

<script type="text/javascript">
function Car(make,model,year,color)
{
this.make=make; 
this.model=model; 
this.year=year; 
this.color=color;
} 
function showCar()
{
var carr = new Car("Dodge","Coronet R/T",1968,"yellow"); 
alert(carr.toJSONString()); 
}
</script>

当要求代表一组值时,JSON
不但能够加强可读性,而且能够减掉复杂性。例如,要是您愿意代表一人名列表。在
XML
中,须要多多开始标志和了结标志;就算选择规范的称号/值对(就好像在本体系前边小说中看到的这种名称/值对),那么必须树立一种专有的数据格式,恐怕将键名称修改为
person1-firstName 这样的样式。

左右了 JSON 格式之后,在 JavaScript 中使用它就很简短了。JSON 是
JavaScript 原生格式,那表示在 JavaScript 中拍卖 JSON
数据没有须要任何非常的 API 或工具包。

那正是 JSON 与任何数据格式之间最大的分裂。假若运用 JSON
,只需调用四个简约的函数,就足以博得通过格式化的数额,能够直接使用了。对于此外数据格式,须求在原有数据和格式化数据里面张开转移。即便选择Document Object Model 那样的 API
(提供了将和谐的数据结构调换为文本的函数),也亟需学习这些 API 并应用
API 的靶子,而不是应用原生的 JavaScript 对象和语法。

万一运用 JSON,就只需将多少个带花括号的笔录分组在一齐:

将 JSON 数据赋值给变量

谈起底敲定是,要是要管理大批量 JavaScript 对象,那么 JSON
大约鲜明是三个好选用,那样就足以轻便地将数据调换为可以在伸手中发送给服务器端程序的格式(Ajax)

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

譬喻说,能够创造三个新的 JavaScript 变量,然后将 JSON
格式的数量字符串间接赋值给它:

JSON字符串转变为JSON对象的主意

    那简单通晓。在这几个示例中,唯有三个名叫 people
的变量,值是含有八个条约标数组,种种条目款项是一人的笔录,其中满含名、姓和电子邮件地址。下边包车型大巴示范演示怎么样用括号将记录组合成贰个值。当然,能够利用同一的语法表示多个值(每一种值包蕴多少个记录):

var people =
 { "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
  { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
  ],
 "authors": [
  { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
  { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
  { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
  ],
 "musicians": [
  { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
  ]
 }

要利用方面包车型客车str1,必须使用上面包车型地铁艺术先转化为JSON对象:

{ "programmers": [   { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },   { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },   { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }  ], "authors": [   { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },   { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },   { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }  ], "musicians": [   { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },   { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }  ] }

那特别轻易;今后 people 包括后边看到的 JSON
格式的数码。可是,那还相当不够,因为访问数据的点子就像是还不明明。

//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');

此地最值得注意的是,能够代表五个值,每一种值进而富含三个值。不过还应该专注,在分化的主条约(programmers、authors
和musicians)之间,记录中实际的称呼/值对能够不平等。JSON
是全然动态的,允许在 JSON
结构的中等改动表示数据的点子。以至能够评释如下的Json对象

走访数据

或者

var obj2={people:{name:'张三',sex:"男"}}     alert(obj2.people.name);

固然看起来不显眼,不过地方的长字符串实际上只是八个数组;将以此数组放进
JavaScript
变量之后,就能够十分轻便地走访它。实际上,只需用点号表示法来代表数组成分。所以,要想访问
programmers 列表的首先个条约的姓氏,只需在 JavaScript
中央银行使下边那样的代码:

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

    在拍卖 JSON
格式的多寡时,没有索要遵守的预约义的羁绊。所以,在同一的数据结构中,能够转移表示数据的办法,以至能够以不一致措施表示一致事物。

people.programmers[0].lastName;

或者

{deptid:'1',deptname:'开发部',deptnum:'2',deptdesc:'开发相关', emps:[{empid:1,empname:'张三',sex:’男’,age:’20’},{empid:2,empname:'张三',sex:’男’,age:’20’},{empid:3,empname:'张三',sex:’男’,age:’20’}]}

在意,数组索引是从零方始的。所以,那行代码首先走访 people
变量中的数据;然后移动到称为 programmers
的条约,再移动到第叁个记录([0]);最终,访问 lastName
键的值。结果是字符串值 “McLaughlin”。

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

三、在JavaScript中使用JSON

上面是使用同一变量的多少个示范。

接下来,就能够如此读取:

理解了 JSON 格式之后,在 JavaScript 中利用它就很轻易了。JSON 是
JavaScript 原生格式,那意味在 JavaScript 中处理JSON数据无需任何异样的 API 或工具包。

people.authors[1].genre            // Value is "fantasy"

people.musicians[3].lastName     // Undefined. This refers to the fourth entry,
 and there isn't one

people.programmers.[2].firstName   // Value is "Elliotte"
Alert(obj.name);
Alert(obj.sex);

将JSON 数据赋值给变量

利用那样的语法,能够拍卖别的 JSON 格式的数码,而无需运用任何额外的
JavaScript 工具包或 API。

非常注意:要是obj本来正是壹个JSON对象,那么使用eval()函数调换后(哪怕是一再转变)照旧JSON对象,可是利用parseJSON()函数管理后会至极(抛出语法格外)。

诸如,能够创建二个新的 JavaScript 变量,然后将 JSON
格式的数目字符串直接赋值给它:

修改 JSON 数据

你或者感兴趣的篇章:

  • js使用eval分析json实例与注意事项分享
  • java对象序列化与反类别化的私下认可格式和json格式使用示例
  • jquery连串化form表单使用ajax提交后甩卖回来的json数据
  • JSON中双引号的轮回使用进度中明确要小心
  • 教你什么运用PHP输出汉语JSON字符串
  • JSON.parse()和JSON.stringify()使用介绍
  • 直接在JS里创立JSON数据然后遍历使用
  • PHP中选择json数据格式定义字面量对象的点子
  • 利用JSON.parse将json字符串转变到json对象的时候会出错
  • Android中生成、使用Json数据实例
  • PHP使用json_encode函数时不转义中文的缓慢解决方法
  • ASP.NET中MVC使用AJAX调用JsonResult方法并回到自定义错误音信
var people =   { "programmers": [     { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },     { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },     { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }    ],   "authors": [     { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },     { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },     { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }    ],   "musicians": [     { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },     { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }    ]   }

正如能够用点号和括号访问数据,也可以根据同样的措施轻便地修改数据:

那特别轻松;现在 people 包罗后面看到的 JSON
格式的数码。不过,这还非常不够,因为访问数据的法子就好像还不精通。

people.musicians[1].lastName = "Rachmaninov";

访问数据

在将字符串转变为 JavaScript 对象之后,就能够像那样修改造量中的数据。

纵然看起来不明明,不过上边的长字符串实际上只是三个数组;将以此数组放进
JavaScript
变量之后,就足以非常轻易地走访它。实际上,只需用点号表示法来代表数组成分。所以,要想拜会
programmers 列表的首先个条款标姓氏,只需在 JavaScript
中运用上面那样的代码:

改造回字符串

people.programmers[0].lastName;

理当如此,就算无法轻轻易松地将目的转变回本文提到的文本格式,那么全部数据修改都没有太大的股票总市值。在
JavaScript 中这种转移也非常粗略: 

    注意,数组索引是从零伊始的。所以,那行代码首先走访 people
变量中的数据;然后移动到称为 programmers
的条规,再移动到第一个记录([0]);最终,访问 lastName
键的值。结果是字符串值 “McLaughlin”。上边是行使同样变量的多少个示范。

String newJSONtext = people.toJSONString();
people.authors[1].genre                   // Value is "fantasy"     people.musicians[3].lastName                 // Undefined. This refers to the fourth entry,and there isn't one     people.programmers[2].firstName          // Value is "Elliotte"

那般就行了!未来就得到了一个足以在别的地方使用的文本字符串,比如,能够将它用作
Ajax 应用程序中的须求字符串。

利用那样的语法,能够管理任何 JSON 格式的数目,而无需使用别的额外的
JavaScript 工具包或 API。

更关键的是,能够将别的 JavaScript 对象调换为 JSON
文本。并非只可以管理原本用 JSON 字符串赋值的变量。为了对名叫 myObject
的指标开展转移,只需进行一样款式的通令:

修改JSON 数据

String myObjectInJSON = myObject.toJSONString();

正如能够用点号和括号访问数据,也能够依据同等的措施轻巧地修改数据:

 那正是 JSON 与本种类研讨的其他数据格式之间最大的差异。如若选拔JSON,只需调用八个轻松的函数,就能够博得通过格式化的多少,能够一贯动用了。对于别的数据格式,须要在原来数据和格式化数据里面开展调换。就算使用
Document Object Model 那样的
API(提供了将自身的数据结构转换为文本的函数),也须要上学这一个 API 并使用
API 的目的,而不是接纳原生的 JavaScript 对象和语法。

people.musicians[1].lastName = "Rachmaninov";

末了定论是,如果要管理大批量 JavaScript 对象,那么 JSON
大致断定是贰个好选择,那样就可以轻巧地将数据转变为能够在呼吁中发送给服务器端程序的格式。

在将字符串转换为 JavaScript
json格式对象之后,就能够像那样修改造量中的数据。

结束语

留心:json格式的对象和json文本是不相同的

本系列已经用大批量时间切磋了数量格式,那关键是因为差不多全体异步应用程序最后都要管理数据。倘使调节了发送和收受全体类型的数指标各类工具和才干,并遵循最契合每一个数据类型的章程使用它们,那么就可见更领悟Ajax。在支配 XML 和纯文本的底子上,再通晓 JSON,那样就可见在 JavaScript
中管理更目眩神摇的数据结构。

var obj={name:"张三","sex":'男'};    //json格式的对象     var str="{name:"张三","sex":'男'}"; //json格式的字符串(json格式的文本)

本连串中的下一篇小说将钻探发送数据以外的标题,深远介绍服务器端程序怎么着吸取和拍卖
JSON 格式的数量。还要商量服务器端程序怎样跨脚本和服务器端组件以 JSON
格式发送回数据,那样就足以将 XML、纯文本和 JSON
央求和响应混合在共同。那能够提供非常大的油滑,可以根据大致任何组合结合使用全部这一个工具。

改变回字符串

 xml的写法: 

当然,若是不能够轻轻便松地将目的调换回本文提到的文本格式,那么具有数据修改都未有太大的价值。在
JavaScript 中这种转移也不会细小略:

<contact>
 <friend>
  <name>Michael</name>
  <email>17bity@gmail.com</email>
  <homepage>http://www.jialing.net</homepage>
 </friend>

 <friend>
  <name>John</name>
  <email>john@gmail.com</email>
  <homepage>http://www.john.com</homepage>
 </friend>

  <friend>
  <name>Peggy</name>
  <email>peggy@gmail.com</email>
  <homepage>//www.jb51.net</homepage>
 </friend> 

</contact>
var newJSONtext = people.toJSONString();

 而JSON:

   
那样就行了!以往就获得了叁个得以在另内地点使用的文本字符串,比如,能够将它用作
Ajax 应用程序中的央求字符串。更器重的是,可以将其余 JavaScript
对象转变为 JSON 文本。并非只可以管理原本用 JSON
字符串赋值的变量。为了对名叫 myObject
的指标实行转变,只需实行同一款式的一声令下:

[
{
 name:"Michael",
 email:"17bity@gmail.com",
 homepage:"http://www.jialing.net"
},

{

 name:"John",
 email:"john@gmail.com",
 homepage:"http://www.jobn.com"
},

{
 name:"Peggy",
 email:"peggy@gmail.com",
 homepage:"//www.jb51.net"
}

]
<script type="text/javascript">    function Car(make,model,year,color)    {       this.make=make;        this.model=model;        this.year=year;        this.color=color;     }      function showCar()     {      var carr = new Car("Dodge","Coronet R/T",1968,"yellow");       alert(carr.toJSONString());      } </script>

 JSON的格式:

那正是 JSON 与其余数据格式之间最大的距离。假使应用
JSON,只需调用八个简短的函数,就能够赢得通过格式化的数码,能够一贯运用了。对于任何数据格式,须求在原始数据和格式化数据里面张开转移。即便选择Document Object Model
那样的API(提供了将协和的数据结构调换为文本的函数),也亟需上学这一个 API
并利用 API 的靶子,而不是使用原生的 JavaScript 对象和语法。

1,对象:

末段敲定是,借使要拍卖大批量 JavaScript 对象,那么 JSON
大约肯定是一个好接纳,那样就能够轻易地将数据转变为能够在伸手中发送给服务器端程序的格式(Ajax)。

{name:”Peggy”,email:”peggy@gmail.com”,homepage:”//www.jb51.net”}

四、JSON在Ajax中的应用

{ 属性 : 值 , 属性 : 值 , 属性 : 值 }

JSON(JavaScript Object Notation)一种轻巧的数码格式,比xml更轻便。 JSON
是 JavaScript 原生格式,那意味在 JavaScript 中拍卖 JSON
数据没有须要任何异样的 API 或工具包。

2,数组是有种种的值的集中。多少个数组初始于”[“,结束于”]”,值时期用”,”分隔。

通过以上学习大家知晓JSON的条条框框很轻易:对象是贰个冬辰的“‘名称/值’对”集合。多个对象以“{”(左括号)初阶,“}”(右括号)截至。种种“名称”后跟叁个“:”(冒号);“‘名称/值’对”之间接选举择“,”(逗号)分隔。

[

1、通过Json格式来声称对象和操作对象

{name:”Peggy”,email:”peggy@gmail.com”,homepage:”//www.jb51.net”},
{name:”Peggy”,email:”peggy@gmail.com”,homepage:”//www.jb51.net”},

js 代码

{name:”Peggy”,email:”peggy@gmail.com”,homepage:”//www.jb51.net”}

function showJSON() {       var user =        {            "username":"andy",         "age":20,         "info": { "tel": "123456", "cellphone": "98765"},         "addresses":               [                   {"city":"beijing","postcode":"222333"},                 {"city":"newyork","postcode":"555666"}             ]       }     alert(user.username);     alert(user.age);     alert(user.info.cellphone);     alert(user.address[0].city);     alert(user.address[0].postcode); } 

]

这意味贰个user对象,具备username, age, info, address
等性情。同样也得以用JSON来总结的修改数据,修改上面包车型地铁例证。

3,
值能够是字符串、数字、true、false、null,也能够是指标或数组。那些组织都能嵌套。

js 代码

你大概感兴趣的文章:

  • javascript json
    菜鸟入门文书档案
  • javascript
    JSON操作入门实例
  • Javascript笔记一
    js以及json基础运用验证
  • JavaScript入门之对象与JSON详解
  • JSON相关知识汇总
function showJSON() {       var user =        {            "username":"andy",           "age":20,           "info": { "tel": "123456", "cellphone": "98765"},           "address":               [                   {"city":"beijing","postcode":"222333"},                   {"city":"newyork","postcode":"555666"}               ]       }              alert(user.username);       alert(user.age);       alert(user.info.cellphone);       alert(user.address[0].city);       alert(user.address[0].postcode);              user.username = "Tom";       alert(user.username);   }

2、一般对象转变来JSON格式的字符

JSON提供了json.js包,下载 后,将其引入然后就足以轻巧的运用object.toJSONString()转换来JSON数据。

js 代码

function Car(make, model, year, color) {        this.make  =  make;        this.model  =  model;        this.year  =  year;        this.color  =  color;   }   function showCar() {       var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");       alert(carr.toJSONString());   } 

2、js对象和JSON格式的js对象、JSON格式的js对象和JSON文本的转换

能够接纳eval来改变JSON字符到JSON格式的Object

js 代码

function myEval() {       var str = '{ "name": "张三", "sex": "男" }';       var obj = eval('(' + str + ')');       alert(obj.toJSONString());   }

版权申明:本文为博主原创作品,未经博主允许不得转载。



相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图