最近基本上天天和這三個東西打交道亡呵!在公司實習(xí)蜒犯,做的項目里和服務(wù)器交換數(shù)據(jù)用的是json组橄,前段是安卓平臺,自然得用java罚随。而這兩天在做的課程作業(yè)里玉工,自己用Tomcat搭服務(wù)器做了個網(wǎng)頁,服務(wù)器端是servlet淘菩,網(wǎng)頁前段js簡直霸道得不得了拔屠酢!今天就簡單總結(jié)一下這三個J的關(guān)系瞄勾!
json(javascript object notation)费奸,是一種現(xiàn)在十分流行和普遍的數(shù)據(jù)交換格式。进陡。用起來確實比xml方便的多愿阐,而且也很輕便。就在項目中真是使用的感受而言趾疚,我覺得json比XML好用無疑缨历!不過好像一個叫什么flatbutter的東西據(jù)說有取代json的趨勢。不過作為一個普通程序員糙麦,我在意這個干嘛辛孵?什么好用我就用什么!
javascript赡磅,可以說這東西是現(xiàn)代瀏覽器腳本語言無法撼動的王者魄缚,可以說是最吊沒有之一。 如果js官方出宣傳片的話焚廊,在中國肯定是要違反廣告法了冶匹!不過這個和java并沒有直接的聯(lián)系,這個應(yīng)該是常識了吧咆瘟。
java就不多說了嚼隘,世界編程語言排行第一。去爭論什么語言好與不好袒餐,牛與不牛飞蛹,對于程序員來說貌似沒有什么意義。既然選擇了某個語言平臺灸眼,這種語言好的東西當(dāng)然需要多多利用卧檐,然而不足的地方,自然是要努力克服才是幢炸。
在Java中泄隔,有很多json的jar包。比如阿里巴巴的fasrjson宛徊,jacksob佛嬉,gson。不過闸天,我使用的是Android SDK自帶的json jar暖呕。org.json。個人覺得這個包帶有的json已經(jīng)可以滿足輕度的開發(fā)使用需求了苞氮。在org.json包下湾揽,主要的類就是JSONObject和JSONArray這兩個類。例如有一段json字符串:txt = "{
name:"bill",
country:"us"
}";
對于這個字符串,構(gòu)造一個json對象的方法十分簡單:JSONObject json = new JSONObject(txt);要獲取某個值库物,只需要調(diào)用json.getString/int/double...(String key)霸旗,就可以了。比如:String name = json.getString("name")戚揭,此時name的值就會是 bill了诱告。十分簡單明了啊民晒!JSONArray也差不多精居,從JSONArray對象里分離出單個JSONObject對象就可以了,JSONArray支持迭代潜必,可以方便的使用for each靴姿。
如果要構(gòu)造json字符串。JSONObject和JSONArray都提供了put方法磁滚。該方法可以把一切東西都放進去佛吓,可以是鍵值對的形式,可以是單值的形式恨旱,可以放JSONArray和JSONObject對象辈毯,可以放String,可以放int等等搜贤!具體使用手段還是去參考API好了谆沃,太多了說不過來!
json都是js發(fā)明的仪芒,js自然是原生支持json的解析了唁影!可是不才,對于js這么流行而且強大的語言掂名,我卻只會一點點的一點點据沈。這里只能簡單的記錄一下js對json數(shù)據(jù)的解析過程。還是剛剛的那段字符串饺蔑,在js中獲得一個json對象可以這么做:var json = eval("(" + txt + ")");對于為什么要在txt前加一堆括號锌介,這個eval這個函數(shù)有關(guān)!這里我沒必要深究猾警,普遍都是這么在用孔祸。而取值的方式也很簡單,比如:var name = json.name发皿;這樣也能得到name的值為bill崔慧。由于js是弱類型語言,數(shù)據(jù)類型并沒有太多劃分穴墅,所以json數(shù)組也理解為一個對象就好了惶室。獲取的方式依然是json.key的形式温自。
最近的學(xué)習(xí)還真的是經(jīng)常和這三個J打交道呢。學(xué)習(xí)的過程還真是痛苦皇钞,每分鐘都在想砸電腦肝炸5棵凇!鹅士!不過加油吧券躁,每天進步一點點,也不是不可以的掉盅!
最后,記錄一個常識以舒。.md結(jié)尾的文件趾痘,代表內(nèi)容格式支持markdown格式,最近才知道這個東西蔓钟,也在簡單的是有永票,用來寫寫周報啊什么的,還是很方便滥沫,不用花太多的時間在排版上侣集。另外一個彩蛋就是git默認的README文件就是.md格式±夹澹看來是要多多學(xué)習(xí)啊世分。