XML和JSON區(qū)別

今個(gè)去面試巾乳,一個(gè)人事經(jīng)理問我xml和json的區(qū)別我沒答上來感覺很難過,于是就回來后就查閱相關(guān)資料寫點(diǎn)東西::

1.定義介紹
(1).XML定義擴(kuò)展標(biāo)記語言 (Extensible Markup Language, XML) ,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言偷溺,可以用來標(biāo)記數(shù)據(jù)划煮、定義數(shù)據(jù)類型裆操,是一種允許用戶對(duì)自己的標(biāo)記語言進(jìn)行定義的源語言官地。 XML使用DTD(document type definition)文檔類型定義來組織數(shù)據(jù);格式統(tǒng)一,跨平臺(tái)和語言烙懦,早已成為業(yè)界公認(rèn)的標(biāo)準(zhǔn)驱入。XML是標(biāo)準(zhǔn)通用標(biāo)記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)亏较。
(2).JSON定義JSON(JavaScript Object Notation)一種輕量級(jí)的數(shù)據(jù)交換格式莺褒,具有良好的可讀和便于快速編寫的特性⊙┣椋可在不同平臺(tái)之間進(jìn)行數(shù)據(jù)交換遵岩。JSON采用兼容性很高的、完全獨(dú)立于語言文本格式巡通,同時(shí)也具備類似于C語言的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)體系的行為尘执。這些特性使JSON成為理想的數(shù)據(jù)交換語言。JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一個(gè)子集宴凉。
2.XML和JSON優(yōu)缺點(diǎn)
(1).XML的優(yōu)缺點(diǎn)
<1>.XML的優(yōu)點(diǎn)  
A.格式統(tǒng)一誊锭,符合標(biāo)準(zhǔn);  
B.容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互弥锄,數(shù)據(jù)共享比較方便丧靡。

<2>.XML的缺點(diǎn)  
A.XML文件龐大,文件格式復(fù)雜籽暇,傳輸占帶寬温治;  
B.服務(wù)器端和客戶端都需要花費(fèi)大量代碼來解析XML,導(dǎo)致服務(wù)器端和客戶端代碼變得異常復(fù)雜且不易維護(hù)戒悠;  
C.客戶端不同瀏覽器之間解析XML的方式不一致熬荆,需要重復(fù)編寫很多代碼;  
D.服務(wù)器端和客戶端解析XML花費(fèi)較多的資源和時(shí)間救崔。

(2).JSON的優(yōu)缺點(diǎn)
<1>.JSON的優(yōu)點(diǎn):  
A.數(shù)據(jù)格式比較簡單惶看,易于讀寫,格式都是壓縮的六孵,占用帶寬形忱琛;  
B.易于解析劫窒,客戶端JavaScript可以簡單的通過eval()進(jìn)行JSON數(shù)據(jù)的讀缺窘瘛;  
C.支持多種語言主巍,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服務(wù)器端語言冠息,便于服務(wù)器端的解析;  
D.在PHP世界孕索,已經(jīng)有PHP-JSON和JSON-PHP出現(xiàn)了逛艰,偏于PHP序列化后的程序直接調(diào)用,PHP服務(wù)器端的對(duì)象搞旭、數(shù)組等能直接生成JSON格式散怖,便于客戶端的訪問提裙矫唷;  
E.因?yàn)镴SON格式能直接為服務(wù)器端代碼使用镇眷,大大簡化了服務(wù)器端和客戶端的代碼開發(fā)量咬最,且完成任務(wù)不變,并且易于維護(hù)欠动。

<2>.JSON的缺點(diǎn)  
A.沒有XML格式這么推廣的深入人心和喜用廣泛永乌,沒有XML那么通用性;  
B.JSON格式目前在Web Service中推廣還屬于初級(jí)階段具伍。

3.XML和JSON的優(yōu)缺點(diǎn)對(duì)比

(1).可讀性方面翅雏。JSON和XML的數(shù)據(jù)可讀性基本相同,JSON和XML的可讀性可謂不相上下沿猜,一邊是建議的語法枚荣,一邊是規(guī)范的標(biāo)簽形式,XML可讀性較好些啼肩。
(2).可擴(kuò)展性方面橄妆。XML天生有很好的擴(kuò)展性,JSON當(dāng)然也有祈坠,沒有什么是XML能擴(kuò)展害碾,JSON不能的。
(3).編碼難度方面赦拘。XML有豐富的編碼工具慌随,比如Dom4j、JDom等躺同,JSON也有json.org提供的工具阁猜,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼蹋艺,可是要寫好XML就不太容易了剃袍。
(4).解碼難度方面。XML的解析得考慮子節(jié)點(diǎn)父節(jié)點(diǎn)捎谨,讓人頭昏眼花民效,而JSON的解析難度幾乎為0。這一點(diǎn)XML輸?shù)恼媸菦]話說涛救。
(5).流行度方面畏邢。XML已經(jīng)被業(yè)界廣泛的使用,而JSON才剛剛開始检吆,但是在Ajax這個(gè)特定的領(lǐng)域舒萎,未來的發(fā)展一定是XML讓位于JSON。到時(shí)Ajax應(yīng)該變成Ajaj(Asynchronous Javascript and JSON)了蹭沛。
(6).解析手段方面逆甜。JSON和XML同樣擁有豐富的解析手段虱肄。
(7).數(shù)據(jù)體積方面。JSON相對(duì)于XML來講交煞,數(shù)據(jù)的體積小,傳遞的速度更快些斟或。
(8).數(shù)據(jù)交互方面素征。JSON與JavaScript的交互更加方便,更容易解析處理萝挤,更好的數(shù)據(jù)交互御毅。
(9).數(shù)據(jù)描述方面。JSON對(duì)數(shù)據(jù)的描述性比XML較差怜珍。
(10).傳輸速度方面端蛆。JSON的速度要遠(yuǎn)遠(yuǎn)快于XML。

4.XML與JSON數(shù)據(jù)格式比較
(1).關(guān)于輕量級(jí)和重量級(jí)輕量級(jí)和重量級(jí)是相對(duì)來說的酥泛,那么XML相對(duì)于JSON的重量級(jí)體現(xiàn)在哪呢?應(yīng)該體現(xiàn)在解析上今豆,XML目前設(shè)計(jì)了兩種解析方式:DOM和 SAX。<1>.DOMDOM是把一個(gè)數(shù)據(jù)交換格式XML看成一個(gè)DOM對(duì)象柔袁,需要把XML文件整個(gè)讀入內(nèi)存呆躲,這一點(diǎn)上JSON和XML的原理是一樣的,但是XML要考慮父節(jié)點(diǎn)和子節(jié)點(diǎn)捶索,這一點(diǎn)上JSON的解析難度要小很多插掂,因?yàn)镴SON構(gòu)建于兩種結(jié)構(gòu):key/value,鍵值對(duì)的集合;值的有序集合腥例,可理解為數(shù)組辅甥;
<2>.SAXSAX不需要整個(gè)讀入文檔就可以對(duì)解析出的內(nèi)容進(jìn)行處理,是一種逐步解析的方法燎竖。程序也可以隨時(shí)終止解析璃弄。這樣,一個(gè)大的文檔就可以逐步的底瓣、一點(diǎn)一點(diǎn)的展現(xiàn)出來谢揪,所以SAX適合于大規(guī)模的解析。這一點(diǎn)捐凭,JSON目前是做不到得拨扶。所以,JSON和XML的輕/重量級(jí)的區(qū)別在于:JSON只提供整體解析方案茁肠,而這種方法只在解析較少的數(shù)據(jù)時(shí)才能起到良好的效果患民;XML提供了對(duì)大規(guī)模數(shù)據(jù)的逐步解析方案,這種方案很適合于對(duì)大量數(shù)據(jù)的處理垦梆。

(2).關(guān)于數(shù)據(jù)格式編碼及解析難度
<1>.在編碼方面匹颤。雖然XML和JSON都有各自的編碼工具仅孩,但是JSON的編碼要比XML簡單,即使不借助工具印蓖,也可以寫出JSON代碼辽慕,但要寫出好的XML代碼就有點(diǎn)困難;與XML一樣,JSON也是基于文本的赦肃,且它們都使用Unicode編碼溅蛉,且其與數(shù)據(jù)交換格式XML一樣具有可讀性。主觀上來看他宛,JSON更為清晰且冗余更少些船侧。JSON網(wǎng)站提供了對(duì)JSON語法的嚴(yán)格描述,只是描述較簡短厅各。從總體來看镜撩,XML比較適合于標(biāo)記文檔,而JSON卻更適于進(jìn)行數(shù)據(jù)交換處理队塘。
<2>.在解析方面袁梗。在普通的web應(yīng)用領(lǐng)域,開發(fā)者經(jīng)常為XML的解析傷腦筋人灼,無論是服務(wù)器端生成或處理XML围段,還是客戶端用 JavaScript 解析XML,都常常導(dǎo)致復(fù)雜的代碼投放,極低的開發(fā)效率奈泪。實(shí)際上,對(duì)于大多數(shù)Web應(yīng)用來說灸芳,他們根本不需要復(fù)雜的XML來傳輸數(shù)據(jù)涝桅,XML宣稱的擴(kuò)展性在此就很少具有優(yōu)勢,許多Ajax應(yīng)用甚至直接返回HTML片段來構(gòu)建動(dòng)態(tài)Web頁面。和返回XML并解析它相比烙样,返回HTML片段大大降低了系統(tǒng)的復(fù)雜性冯遂,但同時(shí)缺少了一定的靈活性。同XML或 HTML片段相比谒获,數(shù)據(jù)交換格式JSON 提供了更好的簡單性和靈活性蛤肌。在Web Serivice應(yīng)用中,至少就目前來說XML仍有不可動(dòng)搖的地位批狱。
(3).實(shí)例比較XML和JSON都使用結(jié)構(gòu)化方法來標(biāo)記數(shù)據(jù)裸准,下面來做一個(gè)簡單的比較。

[
{
"length" : "12",
"url" : "http://127.0.0.1/resources/videos/minion_01.mp4",
"image" : "http://127.0.0.1/resources/images/minion_01.png",
"ID" : "01",
"name" : "小黃人 第01部"
},
{
"length" : "14",
"url" : "http://127.0.0.1/resources/videos/minion_02.mp4",
"image" : "http://127.0.0.1/resources/images/minion_02.png",
"ID" : "02",
"name" : "小黃人 第02部"
},
{
"length" : "16",
"url" : "http://127.0.0.1/resources/videos/minion_03.mp4",
"image" : "http://127.0.0.1/resources/images/minion_03.png",
"ID" : "03",
"name" : "小黃人 第03部"
},
{
"length" : "18",
"url" : "http://127.0.0.1/resources/videos/minion_04.mp4",
"image" : "http://127.0.0.1/resources/images/minion_04.png",
"ID" : "04",
"name" : "小黃人 第04部"
},
{
"length" : "20",
"url" : "http://127.0.0.1/resources/videos/minion_05.mp4",
"image" : "http://127.0.0.1/resources/images/minion_05.png",
"ID" : "05",
"name" : "小黃人 第05部"
},
{
"length" : "22",
"url" : "http://127.0.0.1/resources/videos/minion_06.mp4",
"image" : "http://127.0.0.1/resources/images/minion_06.png",
"ID" : "06",
"name" : "小黃人 第06部"
},
{
"length" : "24",
"url" : "http://127.0.0.1/resources/videos/minion_07.mp4",
"image" : "http://127.0.0.1/resources/images/minion_07.png",
"ID" : "07",
"name" : "小黃人 第07部"
},
{
"length" : "26",
"url" : "http://127.0.0.1/resources/videos/minion_08.mp4",
"image" : "http://127.0.0.1/resources/images/minion_08.png",
"ID" : "08",
"name" : "小黃人 第08部"
},
{
"length" : "28",
"url" : "http://127.0.0.1/resources/videos/minion_09.mp4",
"image" : "http://127.0.0.1/resources/images/minion_09.png",
"ID" : "09",
"name" : "小黃人 第09部"
},
{
"length" : "30",
"url" : "http://127.0.0.1/resources/videos/minion_10.mp4",
"image" : "http://127.0.0.1/resources/images/minion_10.png",
"ID" : "10",
"name" : "小黃人 第10部"
},
{
"length" : "32",
"url" : "http://127.0.0.1/resources/videos/minion_11.mp4",
"image" : "http://127.0.0.1/resources/images/minion_11.png",
"ID" : "11",
"name" : "小黃人 第11部"
},
{
"length" : "34",
"url" : "http://127.0.0.1/resources/videos/minion_12.mp4",
"image" : "http://127.0.0.1/resources/images/minion_12.png",
"ID" : "12",
"name" : "小黃人 第12部"
},
{
"length" : "36",
"url" : "http://127.0.0.1/resources/videos/minion_13.mp4",
"image" : "http://127.0.0.1/resources/images/minion_13.png",
"ID" : "13",
"name" : "小黃人 第13部"
},
{
"length" : "38",
"url" : "http://127.0.0.1/resources/videos/minion_14.mp4",
"image" : "http://127.0.0.1/resources/images/minion_14.png",
"ID" : "14",
"name" : "小黃人 第14部"
},
{
"length" : "40",
"url" : "http://127.0.0.1/resources/videos/minion_15.mp4",
"image" : "http://127.0.0.1/resources/images/minion_15.png",
"ID" : "15",
"name" : "小黃人 第15部"
},
{
"length" : "42",
"url" : "http://127.0.0.1/resources/videos/minion_16.mp4",
"image" : "http://127.0.0.1/resources/images/minion_16.png",
"ID" : "16",
"name" : "小黃人 第16部"
}
]

XML

<?xml version="1.0" encoding="UTF-8"?>
<vedios>
<vedio ID = "01" name = "小黃人 第01部" length = "12" image = "http://127.0.0.1/resources/images/minion_01.png" url = "http://127.0.0.1/resources/videos/minion_01.mp4" />
<vedio ID = "02" name = "小黃人 第02部" length = "14" image = "http://127.0.0.1/resources/images/minion_02.png" url = "http://127.0.0.1/resources/videos/minion_02.mp4" />
<vedio ID = "03" name = "小黃人 第03部" length = "16" image = "http://127.0.0.1/resources/images/minion_03.png" url = "http://127.0.0.1/resources/videos/minion_03.mp4" />
<vedio ID = "04" name = "小黃人 第04部" length = "18" image = "http://127.0.0.1/resources/images/minion_04.png" url = "http://127.0.0.1/resources/videos/minion_04.mp4" />
<vedio ID = "05" name = "小黃人 第05部" length = "10" image = "http://127.0.0.1/resources/images/minion_05.png" url = "http://127.0.0.1/resources/videos/minion_05.mp4" />
<vedio ID = "06" name = "小黃人 第06部" length = "12" image = "http://127.0.0.1/resources/images/minion_06.png" url = "http://127.0.0.1/resources/videos/minion_06.mp4" />
<vedio ID = "07" name = "小黃人 第07部" length = "16" image = "http://127.0.0.1/resources/images/minion_07.png" url = "http://127.0.0.1/resources/videos/minion_07.mp4" />
<vedio ID = "08" name = "小黃人 第08部" length = "18" image = "http://127.0.0.1/resources/images/minion_08.png" url = "http://127.0.0.1/resources/videos/minion_08.mp4" />
<vedio ID = "09" name = "小黃人 第09部" length = "20" image = "http://127.0.0.1/resources/images/minion_09.png" url = "http://127.0.0.1/resources/videos/minion_09.mp4" />
<vedio ID = "10" name = "小黃人 第10部" length = "12" image = "http://127.0.0.1/resources/images/minion_10.png" url = "http://127.0.0.1/resources/videos/minion_10.mp4" />
<vedio ID = "11" name = "小黃人 第11部" length = "13" image = "http://127.0.0.1/resources/images/minion_11.png" url = "http://127.0.0.1/resources/videos/minion_11.mp4" />
<vedio ID = "12" name = "小黃人 第12部" length = "12" image = "http://127.0.0.1/resources/images/minion_12.png" url = "http://127.0.0.1/resources/videos/minion_12.mp4" />
<vedio ID = "13" name = "小黃人 第13部" length = "11" image = "http://127.0.0.1/resources/images/minion_13.png" url = "http://127.0.0.1/resources/videos/minion_13.mp4" />
<vedio ID = "14" name = "小黃人 第14部" length = "15" image = "http://127.0.0.1/resources/images/minion_14.png" url = "http://127.0.0.1/resources/videos/minion_14.mp4" />
<vedio ID = "15" name = "小黃人 第15部" length = "14" image = "http://127.0.0.1/resources/images/minion_15.png" url = "http://127.0.0.1/resources/videos/minion_15.mp4" />
<vedio ID = "16" name = "小黃人 第16部" length = "18" image = "http://127.0.0.1/resources/images/minion_16.png" url = "http://127.0.0.1/resources/videos/minion_16.mp4" />
</vedios>
編碼的可讀性來說赔硫,XML有明顯的優(yōu)勢炒俱,畢竟人類的語言更貼近這樣的說明結(jié)構(gòu)。JSON讀起來更像一個(gè)數(shù)據(jù)塊,讀起來就比較費(fèi)解了权悟。不過砸王,我們讀起來費(fèi)解的語言,恰恰是適合機(jī)器閱讀峦阁,所以通過JSON的索引country.provinces[0].name就能夠讀取“黑龍江”這個(gè)值谦铃。編碼的手寫難度來說,XML還是舒服一些拇派,好讀當(dāng)然就好寫荷辕。不過寫出來的字符JSON就明顯少很多。去掉空白制表以及換行的話件豌,JSON就是密密麻麻的有用數(shù)據(jù),而XML卻包含很多重復(fù)的標(biāo)記字符控嗜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末茧彤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疆栏,更是在濱河造成了極大的恐慌曾掂,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壁顶,死亡現(xiàn)場離奇詭異珠洗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)若专,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門许蓖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人调衰,你說我怎么就攤上這事膊爪。” “怎么了嚎莉?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵米酬,是天一觀的道長。 經(jīng)常有香客問我趋箩,道長赃额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任叫确,我火速辦了婚禮跳芳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘启妹。我一直安慰自己筛严,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桨啃,像睡著了一般车胡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上照瘾,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天匈棘,我揣著相機(jī)與錄音,去河邊找鬼析命。 笑死主卫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鹃愤。 我是一名探鬼主播簇搅,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼软吐!你這毒婦竟也來了瘩将?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤凹耙,失蹤者是張志新(化名)和其女友劉穎姿现,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肖抱,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡备典,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了意述。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片提佣。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖欲险,靈堂內(nèi)的尸體忽然破棺而出镐依,到底是詐尸還是另有隱情,我是刑警寧澤天试,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布槐壳,位于F島的核電站,受9級(jí)特大地震影響喜每,放射性物質(zhì)發(fā)生泄漏务唐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一带兜、第九天 我趴在偏房一處隱蔽的房頂上張望枫笛。 院中可真熱鬧,春花似錦刚照、人聲如沸刑巧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啊楚。三九已至吠冤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恭理,已是汗流浹背拯辙。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颜价,地道東北人涯保。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像周伦,于是被迫代替她去往敵國和親夕春。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • JSON JSON和XML都是需要解析的 JSON是一種輕量級(jí)的數(shù)據(jù)格式专挪,一般用于數(shù)據(jù)交互服務(wù)器返回給客戶端的數(shù)據(jù)...
    JonesCxy閱讀 1,847評(píng)論 2 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理撇他,服務(wù)發(fā)現(xiàn),斷路器狈蚤,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • (開始)【01日本無碼】 〖http://120.52.73.65/data1.cache.directory/m...
    獨(dú)名閱讀 6,941評(píng)論 0 3
  • 圖片發(fā)自網(wǎng)絡(luò) 那時(shí)候, 我們彼此還年少划纽, 還記得那年的天真脆侮, 給予我們的一份真誠; 原來快樂是這么簡單勇劣。 但隨著歲...
    馮知閱讀 169評(píng)論 0 0
  • 看《挪威的森林》時(shí)還是在學(xué)生時(shí)代靖避,當(dāng)時(shí)還誤以為是歌手伍佰唱的那首歌”饶看過這本小說幻捏,第一次知道了這個(gè)酷愛跑步的作家村...
    曩薩氻閱讀 414評(píng)論 0 0