国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JSON相關(guān)知識匯總

2019-11-20 12:06:35
字體:
供稿:網(wǎng)友

JSON:JavaScript 對象表示法(JavaScript Object Notation)

JSON 語法規(guī)則
  數(shù)據(jù)在名稱/值對中
  數(shù)據(jù)由逗號分隔
  花括號保存對象
  方括號保存數(shù)組

JSON有6種類型的值:

  對象、數(shù)組、字符串、數(shù)字、布爾值、null

JSON對象是一個容納“名/值”對的無序集合

  名字:任意字符串
  值:任意類型的JSON值,包括數(shù)組和對象(對象中可以嵌入對象)
注:JSON字符串必須使用雙引號(單引號會報錯)

一、對象

javascript中創(chuàng)建字面量:

var object = {  name:"lily",  age:22};

或者:

var object = {  "name":"lily",  "age":22}; 

JSON:

{  "name":"lily",  "age":22} 

二、數(shù)組

JSON數(shù)組采用的是javascript中數(shù)組字面量形式
擴(kuò)展:
  把數(shù)組和對象結(jié)合起來可以構(gòu)成更復(fù)雜的數(shù)據(jù)結(jié)合
例如:

[  {    "name":"lily",    "age":22,    "job":"docter"  },  {    "name":"nicy",    "age":21,    "job":"teacher"  },  {    "name":"lily",    "age":22,    "job":"AE"  }]  

三、解析與序列化

JSON擁有和javascript類似的語法,可以把JSON數(shù)據(jù)結(jié)構(gòu)解析為有用的javascript對象

1.JSON對象

收發(fā)JSON數(shù)據(jù)

讀取、寫入、發(fā)送和接收J(rèn)SON數(shù)據(jù)對象時,需要轉(zhuǎn)換成字符串,并能從字符串轉(zhuǎn)換為JSON數(shù)據(jù)對象。(用于javascript相同的方式讀寫他們)

JSON對象有兩個方法:
  ① stringify(): 把javascript對象序列化為JSON字符串
  ② parse(): 把JSON字符串解析為原生的javascript值

實(shí)例:

var book = {  title:"professional JavaScript",  authors:[    "lily"  ],  edition:3,  year:2011};var jsonText = JSON.stringify(book);alert(jsonText);   //{"title":"professional JavaScript","authors":["lily"],"edition":3,"year":2011}alert(typeof jsonText);   //stringvar bookCopy = JSON.parse(jsonText);alert(typeof bookCopy);   //object 

這個例子中使用JSON.stringify()把一個javascript對象book序列化為一個JSON字符串,然后保存到j(luò)sonText中;將JSON字符串jsonText直接傳給JSON.parse()就得到了相應(yīng)的javascript值


注:序列化javascript對象時,最終值都是有效JSON數(shù)據(jù)類型的實(shí)例屬性,任何無效的值都會被跳過

2.序列化選項

JSON.stringify()在序列化javascript對象時,可以接收兩個參數(shù)
  參數(shù)一:過濾器,可以是一個數(shù)組或函數(shù)
  參數(shù)二:一個選項,表示是否在JSON字符串中保留縮進(jìn)
1)過濾結(jié)果
如果過濾器的參數(shù)是數(shù)組,那么JSON.stringify()的結(jié)果中只包含數(shù)組中列出的屬性
例如:

var book = {  "title":"professional JavaScript",  "authors":[    "lily"  ],  edition:3,  year:2011}; var jsonText = JSON.stringify(book,["title","edition"]);alert(jsonText); //{"title":"professional JavaScript","edition":3}alert(typeof jsonText); // string 

2)字符串縮進(jìn):
JSON.stringify()方法的第三個參數(shù)用于控制結(jié)果中的縮進(jìn)和空白符
3)toJSON()方法
給對象定義toJSON()方法,可以返回其自身的JSON數(shù)據(jù)格式

四、JSON訪問值

第一種:簡單數(shù)組
['item1','item2','item3']
取值:通過數(shù)字索引訪問嵌入的值(第一項的索引為0)

['item1','item2','item3']
var items = ['item1','item2','item3'];
alert(items[0]);     // item1  
第二種:使用{}表示對象和符合數(shù)組
{ "key":"value" }
取值:通過鍵名訪問嵌入的值

var oExample = { "name":"lily" };
alert(oExample.name);     // lily
alert(oExample["name"]);     // lily  
使用這兩種方式,可以用子記錄(帶命名的或數(shù)值的索引鍵)描述很多數(shù)據(jù)結(jié)構(gòu):

例如:

var oNovelist = {  "firstName":"lily",  "lastName":"russ",  "novels":      [        {          "title":"and choas died",          "year":"1970"        },        {          "title":"the famale man",          "year":"1976"        }      ]}; var msg = oNovelist.firstName+" "+oNovelist.lastName+"'s"+" "+oNovelist.novels[0].title+" "+"was published in"+oNovelist.novels[0].year;alert(msg);   // lily russ's and choas died was published in1970  

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兴市| 缙云县| 法库县| 涟水县| 招远市| 延长县| 湛江市| 大兴区| 克山县| 阳春市| 商洛市| 应用必备| 罗田县| 馆陶县| 保定市| 凭祥市| 潍坊市| 临夏市| 清水县| 上犹县| 黔西| 虞城县| 崇州市| 西青区| 石狮市| 天柱县| 泽库县| 玛多县| 施秉县| 新蔡县| 防城港市| 英德市| 新巴尔虎右旗| 密云县| 万山特区| 庆元县| 汤阴县| 札达县| 昌都县| 米脂县| 宜川县|