成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript:JSON 和 JS 對(duì)象

Miracle / 998人閱讀

摘要:獨(dú)立于語言和平臺(tái),解析器和庫支持許多不同的編程語言。數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換為對(duì)象解析器函數(shù)創(chuàng)建包含語法的字符串使用解析器,解析文本并生成對(duì)象使用函數(shù)時(shí),必須為傳入的數(shù)據(jù)參數(shù)添加括號(hào),否則會(huì)報(bào)語法錯(cuò)誤。

區(qū)別

JSON(JavaScript Object Notation)僅僅是一種數(shù)據(jù)格式(或者叫數(shù)據(jù)形式)。數(shù)據(jù)格式其實(shí)就是一種規(guī)范,按照這種規(guī)范來存諸和交換數(shù)據(jù)。就好像 XML 格式一樣。

區(qū)別 Json Javascript對(duì)象
含義 僅僅是一種數(shù)據(jù)格式 對(duì)象的實(shí)例
傳輸 可以跨平臺(tái)數(shù)據(jù)傳輸,速度快 不能傳輸
表現(xiàn) 1. 鍵值對(duì)
2. 鍵必須加雙引號(hào)
3. 值不能為方法函數(shù)/undefined/NaN
1.鍵值對(duì)
2.值可以是函數(shù)、對(duì)象、字符串、數(shù)字、boolean 等
相互轉(zhuǎn)換 Json → JS 對(duì)象:
1. var obj = JSON.parse(jsonstring);
2. var obj = eval("("+jsonstring+")");
JS 對(duì)象 → Json:
JSON.stringify(obj);

JSON 文本格式在語法上與創(chuàng)建 JavaScript 對(duì)象的代碼相同,但本質(zhì)是不同的。我們不能把以下的對(duì)象叫 JSON,比如:

var obj1 = {}; // 這只是 JS 對(duì)象

// 可把這個(gè)稱做:JSON 格式的 JavaScript 對(duì)象 
var obj2 = {"width":100,"height":200,"name":"rose"};

// 可把這個(gè)稱做:JSON 格式的字符串
var str1 = "{"width":100,"height":200,"name":"rose"}";

// 這個(gè)可叫 JSON 格式的數(shù)組,是 JSON 的稍復(fù)雜一點(diǎn)的形式
var arr = [
    {"width":100,"height":200,"name":"rose"},
    {"width":100,"height":200,"name":"rose"},
    {"width":100,"height":200,"name":"rose"},
];
????????
// 這個(gè)可叫稍復(fù)雜一點(diǎn)的 JSON 格式的字符串?????
var str2="["+
    "{"width":100,"height":200,"name":"rose"},"+
    "{"width":100,"height":200,"name":"rose"},"+
    "{"width":100,"height":200,"name":"rose"},"+
"]";

但 JSON 和 JavaScript 確實(shí)存在淵源,JSON 本身的意思就是 JavaScript 對(duì)象表示法(JavaScript Object Notation),可以說這種數(shù)據(jù)格式是從 JavaScript 對(duì)象中演變出來的。JSON 語法是 JavaScript 對(duì)象表示法語法的子集

JSON 格式的數(shù)據(jù),主要是為了跨平臺(tái)交流數(shù)據(jù)用的。JSON 獨(dú)立于語言和平臺(tái),JSON 解析器和 JSON 庫支持許多不同的編程語言。

語法

1、JSON 語法規(guī)則:

數(shù)據(jù)在名稱/值對(duì)中

數(shù)據(jù)由逗號(hào)分隔

花括號(hào)保存對(duì)象

方括號(hào)保存數(shù)組

2、JSON 數(shù)據(jù)值:

數(shù)字(整數(shù)或浮點(diǎn)數(shù))

字符串(在雙引號(hào)中)

邏輯值(true 或 false)

數(shù)組(在方括號(hào)中)

對(duì)象(在花括號(hào)中)

null

JSON 數(shù)據(jù)結(jié)構(gòu)有兩種,這兩種結(jié)構(gòu)就是對(duì)象和數(shù)組,通過這兩種結(jié)構(gòu)可以表示各種復(fù)雜的結(jié)構(gòu)。
JSON 使用嚴(yán)格的 JavaScript 對(duì)象表示法來表示結(jié)構(gòu)化的數(shù)據(jù),因此 JSON 的屬性名必須有雙引號(hào)。

{
    "company": "Apple",
    "age": 18,
    "IPO", true,
    "employees": [
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}
數(shù)據(jù)轉(zhuǎn)換 JSON 數(shù)據(jù)轉(zhuǎn)換為 JS 對(duì)象

1、JS 解析器:eval() 函數(shù)

// 創(chuàng)建包含 JSON 語法的 JavaScript 字符串
var txt = "{ "employees" : [" +  
"{ "firstName":"John" , "lastName":"Doe" }," +  
"{ "firstName":"Anna" , "lastName":"Smith" }," +  
"{ "firstName":"Peter" , "lastName":"Jones" } ]}";

//使用 JS 解析器,解析 JSON 文本并生成 JS 對(duì)象
var obj = eval("(" + txt + ")");  

使用 eval() 函數(shù)時(shí),必須為傳入的 JSON 數(shù)據(jù)參數(shù)添加括號(hào)"()",否則會(huì)報(bào)語法錯(cuò)誤。

2、 解析器:parse()函數(shù)

但 eval() 的問題在于,除了可以解析 JSON 數(shù)據(jù),也可以用于執(zhí)行 JavaScript 腳本片段,這就會(huì)帶來潛在的安全問題。JSON 提供了專門的 JSON Parser 來實(shí)現(xiàn)只用于解析 JSON 數(shù)據(jù),不會(huì)執(zhí)行 JavaScript 腳本,而且速度更快。如下:

var obj = JSON.parse(txt);

較新的瀏覽器和最新的 ECMAScript (JavaScript) 標(biāo)準(zhǔn)中均包含了原生的對(duì) JSON 的支持。

JS 數(shù)據(jù)轉(zhuǎn)換為 JSON 文本

使用 JSON.strigify() 函數(shù),將 Javascript 對(duì)象轉(zhuǎn)換為 JSON 文本數(shù)據(jù)。

var obj = {a:1,b:2}
var?txt?=?JSON.stringify(obj);
console.log(txt);
結(jié)果:
"{"a":1,"b":2}"

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79988.html

相關(guān)文章

  • JavaScript對(duì)象JSON

    摘要:,指的對(duì)象表示法,它本身是個(gè)字符串,是一種數(shù)據(jù)交換格式,并非對(duì)象。字符串必須使用雙引號(hào)表示,不能使用單引號(hào)。數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能有逗號(hào)。不合法的會(huì)在解析成對(duì)象時(shí),出現(xiàn)錯(cuò)誤。替代方法對(duì)象下雖然提供了完整的字符串和對(duì)象的轉(zhuǎn)換方法。 JSON(JavaScript Object Notation),指JavaScript的對(duì)象表示法,它本身是個(gè)字符串,是一種數(shù)據(jù)交換格式,并非對(duì)...

    wuyumin 評(píng)論0 收藏0
  • JavaScript JSON——“語法、解析與序列化”的注意要點(diǎn)

    摘要:對(duì)象對(duì)象作為一種復(fù)雜的數(shù)據(jù)類型,表示的是一組有序的鍵值對(duì)。解析與序列化對(duì)象流行的最主要的原因是因?yàn)閿?shù)據(jù)結(jié)構(gòu)可以解析為的對(duì)象。為了改變序列化對(duì)象的結(jié)果,函數(shù)返回值就是相應(yīng)鍵的值。否則按照默認(rèn)順序執(zhí)行序列化。 語法 JSON可以表示一下三種類型的值: 簡單值:使用與js相同的語法可以在json中表示字符串、數(shù)值、布爾值和null。但是json不支持js的undefined。 對(duì)象:對(duì)象作...

    ?。?。 評(píng)論0 收藏0
  • 【重溫基礎(chǔ)】16.JSON對(duì)象介紹

    摘要:系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)篇重溫基礎(chǔ)對(duì)象介紹本章節(jié)復(fù)習(xí)的是中的關(guān)于對(duì)象相關(guān)知識(shí)。概念概念有三點(diǎn)全稱對(duì)象表示法。對(duì)象沒有分號(hào),而對(duì)象有。序列化對(duì)象時(shí),所有函數(shù)及原型成員都會(huì)被忽略,不體現(xiàn)在結(jié)果上。 本文是 重溫基礎(chǔ) 系列文章的第十六篇。今日感受:靜。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1-14篇 【重溫基礎(chǔ)】15...

    0x584a 評(píng)論0 收藏0
  • JavaScript系列--淺析JavaScript解析賦值、淺拷貝深拷貝的區(qū)別

    摘要:它將返回目標(biāo)對(duì)象。有些文章說是深拷貝,其實(shí)這是不正確的。深拷貝相比于淺拷貝速度較慢并且花銷較大??截惽昂髢蓚€(gè)對(duì)象互不影響。使用深拷貝的場景完全改變變量之后對(duì)沒有任何影響,這就是深拷貝的魔力。 一、賦值(Copy) 賦值是將某一數(shù)值或?qū)ο筚x給某個(gè)變量的過程,分為: 1、基本數(shù)據(jù)類型:賦值,賦值之后兩個(gè)變量互不影響 2、引用數(shù)據(jù)類型:賦址,兩個(gè)變量具有相同的引用,指向同一個(gè)對(duì)象,相互之間有...

    laznrbfe 評(píng)論0 收藏0
  • 前端_JavaScript_面向對(duì)象編程

    摘要:面向?qū)ο缶幊虒?duì)象的原生方法分成兩類自身的方法靜態(tài)方法和的實(shí)例方法。的靜態(tài)方法方法與,參數(shù)是對(duì)象,返回一個(gè)數(shù)組,數(shù)組的值是改對(duì)象自身的所有屬性名區(qū)別在于返回可枚舉的屬性,返回不可枚舉的屬性值。 面向?qū)ο缶幊?Objects對(duì)象的原生方法分成兩類:Object自身的方法(靜態(tài)方法)和Object的實(shí)例方法。注意Object是JavaScript的原生對(duì)象,所有的其他對(duì)象都是繼承自O(shè)bjec...

    Blackjun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<