json是什么,如何處理轉(zhuǎn)義?

大家好,我是IT修真院北京總院第21期的學(xué)員楊夢(mèng)桐,

今天這篇文主要關(guān)于json是什么,以及如何處理轉(zhuǎn)義。

數(shù)據(jù)傳輸是我們?cè)诰帉懘a時(shí)經(jīng)常遇到的一個(gè)場(chǎng)景。給數(shù)據(jù)一個(gè)統(tǒng)一的格式有利于我們編寫和解析數(shù)據(jù)。json,是數(shù)據(jù)格式的一種,在與后端的數(shù)據(jù)交換中有較為廣泛的應(yīng)用。

json是一種數(shù)據(jù)格式,全名JavaScript Object Notation (JavaScript 對(duì)象表示法),具有基于文本、輕量級(jí)、被廣泛地用于數(shù)據(jù)交換的特點(diǎn),也是一種傳遞對(duì)象的語(yǔ)法,對(duì)象可以是name/value對(duì),數(shù)組和其他對(duì)象,具體展開,包含如下概念:

1. 基于文本:JSON是基于文本的數(shù)據(jù)格式,相對(duì)于基于二進(jìn)制的數(shù)據(jù),所以JSON在傳遞的時(shí)候是傳遞符合JSON這種格式的字符串,而不是一個(gè)對(duì)象。

2. 輕量級(jí):在JSON之前,有一個(gè)數(shù)據(jù)格式叫xml,現(xiàn)在依舊廣泛使用,但是JSON更加輕量,這在有大量數(shù)據(jù)請(qǐng)求和傳遞的情況下是有明顯優(yōu)勢(shì)的。

3. 應(yīng)用廣泛:輕量已經(jīng)是一個(gè)用于數(shù)據(jù)交換的優(yōu)勢(shì)了,但更重要的JSON是易于閱讀、編寫和機(jī)器解析的,即這個(gè)JSON對(duì)人和機(jī)器都是友好的,而且又輕,獨(dú)立于語(yǔ)言(因?yàn)槭腔谖谋镜模訨SON被廣泛用于數(shù)據(jù)交換。

json的常見問題如下

1.什么是JSON對(duì)象?

a.符合json格式的js對(duì)象被簡(jiǎn)稱為json對(duì)象

b.JSON是一個(gè)提供了stringify和parse方法的內(nèi)置對(duì)象

c.JSON.stringify()將js對(duì)象轉(zhuǎn)化為符合json標(biāo)準(zhǔn)的字符串

d.JSON.parse()將符合json標(biāo)準(zhǔn)的字符串轉(zhuǎn)化為js對(duì)象

2.?json格式的對(duì)象與一般js對(duì)象語(yǔ)法上的區(qū)別

a.json格式的對(duì)象鍵名必須是加雙引號(hào),屬性值只能是數(shù)值(10進(jìn)制)、字符串(雙引號(hào))、布爾值和null,也可以是數(shù)組或者符合JSON要求的對(duì)象,不能是函數(shù)、NaN, Infinity(存放表示正無(wú)窮大的數(shù)值), -Infinity和undefined,最后一個(gè)屬性后面不能有逗號(hào),前導(dǎo)0不能用,小數(shù)點(diǎn)后必須有數(shù)字

b.js對(duì)象鍵名可允許不加、加單引號(hào)、加雙引號(hào),任意屬性值均可,最后一個(gè)屬性后面可以有逗號(hào),數(shù)值無(wú)限制

3.?什么是json格式?

數(shù)據(jù)以鍵值對(duì)的形式存儲(chǔ),和對(duì)象的格式有點(diǎn)像

ar person={name:"blabla"};

//一個(gè)普通的js對(duì)象

var obj2 = {"width":100,"height":200,"name":"blabla"};

// 可把這個(gè)稱做:JSON 格式的 JavaScript 對(duì)象

var str1 = '{"width":100,"height":200,"name":"blabla"}';

// 可把這個(gè)稱做:JSON 格式的字符串

var arr = [

{"width":100,"height":200,"name":"blabla"},

{"width":100,"height":200,"name":"blabla"},

{"width":100,"height":200,"name":"blabla"},

];

// 這個(gè)可叫JSON格式的數(shù)組,是JSON的稍復(fù)雜一點(diǎn)的形式

var str2='['+

'{"width":100,"height":200,"name":"blabla"},'+

'{"width":100,"height":200,"name":"blabla"},'+

'{"width":100,"height":200,"name":"blabla"},'+

']';

// 這個(gè)可叫稍復(fù)雜一點(diǎn)的 JSON 格式的字符串

擴(kuò)展思考:由json字串生成json對(duì)象時(shí)的轉(zhuǎn)義問題:http://blog.csdn.net/robotech_er/article/details/40260377

參考文獻(xiàn):http://www.jb51.net/article/29893.htm

json和xml作為數(shù)據(jù)傳輸?shù)母袷椒謩e有什么優(yōu)缺點(diǎn):http://blog.csdn.net/tangtiantian520/article/details/50945582

ppt鏈接:https://ptteng.github.io/PPT/PPT/js8router.html#/

視頻鏈接:https://v.qq.com/x/page/s0527lcnvtf.html

拓展問題:

1. json和jsonp的區(qū)別

json返回的是一串?dāng)?shù)據(jù);而jsonp返回的是腳本代碼(包含一個(gè)函數(shù)調(diào)用),具體可參考http://www.cnblogs.com/iovec/p/5312464.html這篇文章

2. xml是什么

擴(kuò)展標(biāo)記語(yǔ)言 (Extensible Markup Language, XML) ,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。 XML使用DTD(document type definition)文檔類型定義來(lái)組織數(shù)據(jù);格式統(tǒng)一,跨平臺(tái)和語(yǔ)言,早已成為業(yè)界公認(rèn)的標(biāo)準(zhǔn)。XML是標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。具體可參考https://baike.baidu.com/item/可擴(kuò)展標(biāo)記語(yǔ)言/2885849?fr=aladdin&fromid=86251&fromtitle=xml

3. xml和json的區(qū)別

相較json,XML文件龐大,文件格式復(fù)雜,傳輸占帶寬;服務(wù)器端和客戶端都需要花費(fèi)大量代碼來(lái)解析XML,導(dǎo)致服務(wù)器端和客戶端代碼變得異常復(fù)雜且不易維護(hù);客戶端不同瀏覽器之間解析XML的方式不一致,需要重復(fù)編寫很多代碼;服務(wù)器端和客戶端解析XML花費(fèi)較多的資源和時(shí)間??蓞⒖糷ttp://www.cnblogs.com/SanMaoSpace/p/3139186.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 大家好,我是IT修真院深圳分院第01期學(xué)員,一枚正直善良的web程序員。 今天給大家分享一下,修真院官網(wǎng) JS任務(wù)...
    長(zhǎng)天_閱讀 1,893評(píng)論 0 1
  • 大家好,我是IT修真院北京分院第22期學(xué)員,一枚正直善良的web程序員。 今天給大家分享一下,修真院官網(wǎng) JS任務(wù)...
    古碑先生閱讀 858評(píng)論 0 0
  • 數(shù)據(jù)傳輸是我們?cè)诰帉懘a時(shí)經(jīng)常遇到的一個(gè)場(chǎng)景。給數(shù)據(jù)一個(gè)統(tǒng)一的格式有利于我們編寫和解析數(shù)據(jù)。 在JSON出現(xiàn)之前,...
    自?shī)首詷S閱讀 5,307評(píng)論 0 1
  • 大家好,我是IT修真院成都分院第5期的學(xué)員,一枚正直純潔善良的web程序員 一.背景介紹: JSON是JavaSc...
    張王王閱讀 1,070評(píng)論 0 0
  • 童年里,有明晃晃的夏天,正午時(shí)分,一個(gè)人在河里玩水,河底的鵝卵石清晰可見,我非常認(rèn)真地,一動(dòng)不動(dòng)地盯著水底的那些石...
    九月星辰閱讀 193評(píng)論 0 2

友情鏈接更多精彩內(nèi)容