json

一.Ajax準(zhǔn)備知識:json

說起json统锤,我們都知道了解就是python中的json模塊

json對象標(biāo)記(是一種輕量級的數(shù)據(jù)交換格式
它基于 ECMAScript (w3c制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)赢笨。
簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言蛮寂。 易于人閱讀和編寫蔽午,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率共郭。
json其實(shí)是從js中拿出的一個(gè)對象祠丝,也可以說json是js的一個(gè)子集。
圖片.png

需要知道的:json的格式來源于js的格式
1.js支持單引號也支持雙引號除嘹,也可以沒有引號

 //在js中吧{}這樣的類型叫做對象写半,js中沒有字典一說
data = {
    'name':'haiyan',
    "name":"haiyan",
     name:"haiyan"        
}     //js對象默認(rèn)會(huì)把自己的鍵當(dāng)成字符串處理,所以可以加引號也可以不加

2.json的格式:

1尉咕、json只認(rèn)雙引號的
2叠蝇、json一定是一個(gè)字符串

3.下面那些是合格的字符串,那些不是年缎?
合格的json對象:

["one", "two", "three"]
{ "one": 1, "two": 2, "three": 3 }
{"names": ["張三", "李四"] }
[ { "name": "張三"}, {"name": "李四"} ]

不合格的json對象:

{ name: "張三", 'age': 32 }                     // 屬性名必須使用雙引號
[32, 64, 128, 0xFFF] // 不能使用十六進(jìn)制值
{ "name": "張三", "age": undefined }            // 不能使用undefined
{ "name": "張三",
  "birthday": new Date('Fri, 26 Aug 2011 07:13:10 GMT'),
  "getName":  function() {return this.name;}    // 不能使用函數(shù)和日期對象
}
python中的序列化(dumps)與反序列化(loads)
import json
i = 10
s = "dsfdsf"
l = [11,22,33]
dic = {"name":"haiyna","age":22}
b = True
# #吧基本數(shù)據(jù)類型轉(zhuǎn)換成字符串的形式
print(json.dumps(i),type(json.dumps(i)))   #10 <class 'str'>
print(json.dumps(s),type(json.dumps(s)))   #"dsfdsf" <class 'str'>
print(json.dumps(l),type(json.dumps(l)))   #[11, 22, 33] <class 'str'>
print(json.dumps(dic),type(json.dumps(dic)))  #{"name": "haiyna", "age": 22} <class 'str'>
print(json.dumps(b),type(json.dumps(b)))  #true <class 'str'>



# ===============json反序列化=============
d = {"a":1,"b":"fdgfd"}
data = json.dumps(d)
print(data,type(data))
f = open("a.txt","w")
f.write(data)   #注意這會(huì)寫進(jìn)去的字符串時(shí)雙引號的格式
f.close()

# ===============json序列化=============
f = open("a.txt","r")
datat = f.read()
print(datat,type(datat))   #{"a": 1, "b": "fdgfd"} <class 'str'>
data = json.loads(datat)
print(data,type(data))  #{'a': 1, 'b': 'fdgfd'} <class 'dict'>
js中的序列化(stringify)與反序列化(parse)

json.stringify():用于將一個(gè)javaScript對象轉(zhuǎn)換為json字符串
json.parse():用于將一個(gè)json字符串轉(zhuǎn)換為javaScript對象

<script>
//===========js中的json序列化===========
s = '{"name":1}';    
var data = JSON.parse(s);
console.log(data);
console.log(typeof data);   //object
//===========js中的json的反序列化=======
s2={'name':'yuan'};
console.log(JSON.stringify(s2),typeof JSON.stringify(s2))  //string
</script>

json和xml的比較

1,xml也是存數(shù)據(jù)的一種格式,也是一種標(biāo)記語言悔捶,它是利用節(jié)點(diǎn)進(jìn)行查找的
2,json格式于20012001年由 Douglas Crockford 提出,目的就是取代繁瑣笨重的 XML 格式单芜。
json格式有兩個(gè)顯著的優(yōu)點(diǎn):書寫簡單一目了然,符合javaScript原生語法,可以解釋引擎直接處理蜕该,不用另外添加解析代碼。所以json迅速的被接受,已經(jīng)成為各大網(wǎng)站交換數(shù)據(jù)的標(biāo)準(zhǔn)格式洲鸠,并被寫入ECMAScript 5堂淡,成為標(biāo)準(zhǔn)的一部分。
xml和json使用結(jié)構(gòu)化方法來標(biāo)記數(shù)據(jù)扒腕,下面簡單比較
用xml來表示中國部分省市數(shù)據(jù)如下:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中國</name>
    <province>
        <name>黑龍江</name>
        <cities>
            <city>哈爾濱</city>
            <city>大慶</city>
        </cities>
    </province>
    <province>
        <name>廣東</name>
        <cities>
            <city>廣州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
    <province>
        <name>臺(tái)灣</name>
        <cities>
            <city>臺(tái)北</city>
            <city>高雄</city>
        </cities>
    </province>
    <province>
        <name>新疆</name>
        <cities>
            <city>烏魯木齊</city>
        </cities>
    </province>
</country>

用json如下:

{
    "name": "中國",
    "province": [{
        "name": "黑龍江",
        "cities": {
            "city": ["哈爾濱", "大慶"]
        }
    }, {
        "name": "廣東",
        "cities": {
            "city": ["廣州", "深圳", "珠海"]
        }
    }, {
        "name": "臺(tái)灣",
        "cities": {
            "city": ["臺(tái)北", "高雄"]
        }
    }, {
        "name": "新疆",
        "cities": {
            "city": ["烏魯木齊"]
        }
    }]
}

可以看到绢淀,JSON 簡單的語法格式和清晰的層次結(jié)構(gòu)明顯要比 XML 容易閱讀,并且在數(shù)據(jù)交換方面瘾腰,由于 JSON 所使用的字符要比 XML 少得多皆的,可以大大得節(jié)約傳輸數(shù)據(jù)所占用得帶寬。
注意:json格式取代了xml給網(wǎng)絡(luò)傳輸帶來很大的便利,但是卻沒有xml的一目了然蹋盆,尤其是json數(shù)據(jù)很長的時(shí)候费薄,我們會(huì)陷入繁瑣復(fù)雜的數(shù)據(jù)節(jié)點(diǎn)查找中.
但是國人的一款在線工具 BeJson 、SoJson在線工具讓眾多程序員栖雾、新接觸JSON格式的程序員更快的了解JSON的結(jié)構(gòu)楞抡,更快的精確定位JSON格式錯(cuò)誤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岩灭,一起剝皮案震驚了整個(gè)濱河市拌倍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖柱恤,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件数初,死亡現(xiàn)場離奇詭異,居然都是意外死亡梗顺,警方通過查閱死者的電腦和手機(jī)泡孩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寺谤,“玉大人仑鸥,你說我怎么就攤上這事”淦ǎ” “怎么了眼俊?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粟关。 經(jīng)常有香客問我疮胖,道長,這世上最難降的妖魔是什么闷板? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任澎灸,我火速辦了婚禮,結(jié)果婚禮上遮晚,老公的妹妹穿的比我還像新娘性昭。我一直安慰自己,他們只是感情好县遣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布糜颠。 她就那樣靜靜地躺著,像睡著了一般艺玲。 火紅的嫁衣襯著肌膚如雪括蝠。 梳的紋絲不亂的頭發(fā)上鞠抑,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天饭聚,我揣著相機(jī)與錄音,去河邊找鬼搁拙。 笑死秒梳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的箕速。 我是一名探鬼主播酪碘,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盐茎!你這毒婦竟也來了兴垦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎探越,沒想到半個(gè)月后狡赐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钦幔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年枕屉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲤氢。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搀擂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卷玉,到底是詐尸還是另有隱情哨颂,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布相种,位于F島的核電站咆蒿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蚂子。R本人自食惡果不足惜沃测,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望食茎。 院中可真熱鬧蒂破,春花似錦、人聲如沸别渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哎媚。三九已至喇伯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拨与,已是汗流浹背稻据。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留买喧,地道東北人捻悯。 一個(gè)月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像淤毛,于是被迫代替她去往敵國和親今缚。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容