2007年1月30日 星期二

JSON Introduction

JSON Introduction

JSON 官方網站 : http://www.json.org/

What is JSON?
JSON 的英文全名就是「JavaScript Object Notation」,它實際上就是物件陣列的文字表示法。 JSON 有什麼用呢?你可以當它是種資料交換格式,就像 XML 一樣,你可以將這兩種格式視為相同,可以互相轉換,但不能互相取代。
假設網站回傳一份 XML 文件,我們使用JSON去 parse會比用DOM model 來的簡單明瞭。所以JSON跟Javascript 配合的好處是無庸置疑的。

Sample JSON example:
"student": [ { "name": "Andy", "class": 3, "number": 12 }, { "name": "Mary", "class": 2, "number": 23 } ]


舉例來說,上面的 JSON 我們可以改寫成如下的 XML 文件:



其實XML 是一種很好的資料表示格式,但有時候它就是太囉唆了,JSON 可以簡化這種表示格式,用較少的字元達到相同的效果。因此 JSON 很適合應用在輕量級的網頁應用,為什麼適合在網頁應用呢?因為 JSON 是以 Javascript 的 ECMA-262 3rd Edition 的標準為基準,根本就是 Javascript 的一部分,但是,它也可以用在別的地方,至於還可以在哪裡用?這應該不是重點,總之在web上用最合適啦。


How to use JSON?
舉例,如果你有一串 JSON 的字串,如下:
var json = '{"student": [ {"name": "Andy", "class": 3, "number": 12 }, {"name": "Mary", "class": 2, "number": 23 }]}';

用法如下:

var obj = eval ("(" + json + ")");alert('This school has ' + obj.student.length + 'student.');alert(obj.student[0].name);alert(obj.student[1].name);

上述是利用 eval() 來將 JSON 字串轉成Object。但是呼叫 eval() 是危險的,因為他會執行任何字串中的 Javascript 程式碼,容易有危險,所以一般都建議引用官網上所提供的parser :


網址- http://www.json.org/json.js

var obj = JSON.parse(json);

此外,也可以把一個Object轉換成 JSON 字串:



Relation with AJAX and Other
我們在實作 AJAX 時,通常有兩種作法:

(1). 伺服器回傳一段 Javascript 由瀏覽器去執行。

(2). 伺服器回傳一段 XML 由瀏覽器去解讀。

一個控制權在Server端,一個則是在Client端,其實各有利弊,使用的時機也不太一樣。但是我們可以用JSON來代替(2)的XML,其中的好處已在一開始說明過了。

與AJAX一樣 ,一般 Web UI 應用也是可以使用 JSON 的,現在一般的 UI 設計都是以Server端的 PHP、ASP、CGI及JSP 等來控制網頁的編排。其實JSON 可以與 PHP…等Server端技術之Object互相轉換,而且同樣可以在Client端將資料轉換成 JSON 格式,到了Server端,轉換成Object,一樣可以做資料檢查驗證等,甚至能轉換成DataBase的格式,且存進DataBase。

其他資源:

網站七大獲利來源

網站七大獲利來源
1. 商務(Commerce)
2. 會員(Membership)
3. 廣告(Advertisment)
4. 行動(Mobile)
5. 拍賣(Auction)
6. 內容(Content)
7. 虛擬物品(Avatar)

商務(Commerce)
大部分為傳統企業實體通路之延伸,隨著電子商務逐漸成熟,各大企業也會在網路上提供24小時全天候的服務,掌握網路上的商機。電子商務可以節省企業很多的時間以及金錢等等的成本目前的交易方式有B2B以及B2C兩種。此種類型之範例:中華電信或是金融業者提供的服務等等。

會員(Membership)
主要是利用會員制的網站,這類網站一開始通常都是加入會員並提供免費的服務,不過藉由付費可能變成VIP會員享受容量加大等等的更多服務與權益。這種會員付費的獲利方式在一般經營社群的網站上都看得到。例如:Flickr﹑無名小站…等等。

廣告(Advertisment)
這應該是大家最為熟悉的方式。網路上的廣告可分為兩個部分,其一是搜尋廣告,例如入口網站(Google﹑Yahoo…等)將你的網站排在搜尋結果的前面。其二指的是任何刊登在網站上不同形式的廣告。根據Yahoo!奇摩的估算,近幾年的網路廣告市場前景看好。像Google,創造了很多網路廣告的收費形式,藉由廣告獲取的利益也經常令人瞠目結舌。

行動(Mobile)
行動這一塊目前還不具有什麼獲利能力,但是隨著手持裝置越來越盛行,相信這一塊在未來也會變成一個具有高獲利能力的網站獲利方式。

拍賣(Auction)
此種類型大多是藉由大型的入口網站或是專門標榜線上拍賣為主題的網站具有此獲利模式。目前藉由網路拍賣來購買東西的人口比率越來越高了,所以其獲利能力也不容小覷。此類型網站有:ebay﹑Yahoo!奇摩。

內容(Content)
此類型網站主要是由經營者所提供的任何具有價值之數位資訊內容,進而做商業相關之運用。例如在網路上寫小說,出版商會跟你洽談並且出版成實體的書等等。

虛擬物品(Avatar)
所謂虛擬物品,大致上可以分為網站上所提供的或是線上遊戲所提供的寶物﹑道具等。藉由提供或是拍賣這類型的物品來獲取利潤。例如:8591.com﹑Cyworld…等。

2007年1月27日 星期六

AJAX&PHP整合應用(一)

(一)建立Javascript與PHP的溝通方式。

要使AJAX能和PHP整合,最重要就是讓Javascript能呼叫PHP,下面提供一個例子,使Javascript呼叫PHP,然後印出PHP的執行內容。

Step1先建立一個index.php檔案。程式碼如下:























Step2:建立一個data.php檔,此檔案是要被Javascript呼叫的。程式碼如下:


Step3瀏覽index.php,按下call PHP,則javascript就會去呼叫data.php檔案,在下一行就會印出call data.php successfully!。

程式碼說明index.php裡 當中的程式碼即是Javascript,也是AJAX的核心(XMLHttpRequest),接下來function getData()就是利用XMLHttpRequestObject來實作本範例的功能。

丹麥快樂國

有成績的成績單,對我們來說可能是一件驚為天人的事情,但是丹麥的學校的確是發這樣子的成績單給家長的,那沒有成績的話,上面是寫了些什麼呢?
只有四格:「最喜歡的事」、「最討厭的事」、「最擅長的事」、「最想學的事」。
然後這些都是由學生們自己填寫或者是畫圖來完成。
丹麥的初等教育,是讓學生主動學習跨領域知識,怎麼做呢?其實是利用一個主題,一個不同年級的團隊,一群不同領域的老師,讓學生們自己主動查資料、研讀相關的數學、英文、物理等等的知識,以完成這項計畫,所以,丹麥人從小學習的知識便不是獨立的學問,是能與不同領域的知識緊密合作的學問。
從小,丹麥的學生們養成的就是解決問能力,並且因自信而快樂,沒有分數及排名的壓力,卻對數學、物理…等等各種學問熱愛。
高中畢業了,要做些什麼呢?當然是考進大學呀!因為在台灣大家都這麼做,但是,在丹麥,許多高中畢業生,不急著馬上進大學,而是會利用一整年的時間,出國旅遊、做義工…等等,利用不同的方式來思考人生。可想而知,在台灣,這樣的舉動根本被視為浪費時間。
看起來,丹麥人會快樂的原因是因為他們不比較、不競爭,但實際上的原因是因為他們都充滿了自信,並且能選擇自己的人生,當然,跟丹麥的社會制度也有很大的關係。在丹麥,送報員的薪水有10多萬,有錢人不會去買LV,沒有人「擁有的太多」,更沒有人「擁有的太少」。

創業小故事

一個小故事:

某地有一條公路,沒有紅綠燈及斑馬線,有一群人(上班族、大學生、國高中生、老人…等等)站在馬路旁想要通過它,但是,川流不息且高速奔馳的一台台車子,無視人群想過馬路的舉動。
然後,等待的人群們開始焦躁起來了,上班族大聲罵著,大學生討論著要如何過去,老人們待在原地發呆。
此時,一位國中生在白紙上寫了幾個斗大的文字---”請盡快通過!!!”像車群展示。
因為好奇心趨使,想看看發生了啥事,於是車群開始慢下來了,想過馬路的人群就如願的通過了這條馬路。

故事當中欲過馬路的人群其實個個都像是創業家,明顯地,只有國中生成功了,為什麼會成功呢? 只因國中生將”創業”視為動詞而已。

Web2.0 三大商業模式分類

1. Cross Service 網站內容由第三方所提供
2. Inherence 網站內容由網站業者提供
3. Aggregator 網站內容由使用者提供


Cross Service
網站本身的功能就是一種Mashup的概念所產生的綜合性服務,並沒有提供自創的的功能,而是藉由將其他網站的功能mashup以後,而創造出具有特別價值之網站,你可以到這種網站一次享受到許多的服務,不用再一個一個的去瀏覽。

Inherence
這類網站極為常見,例如:Kuro、KKbox等網站,你可以選擇付費來享受,或是使用它免費的功能。這類型的網站,都是以提供特定的某些資訊或服務為前提,吸引使用者來瀏覽,進而持續的使用網站的其他功能。總而言之,網站的黏性還是在於本身提供使用者有價值之資訊。

Aggregator
這類的網站會先決定一個主題,例如:交友、音樂、旅遊或是某方面的知識等等,然後網站的經營者並不太會主動提供網站的內容,而是讓使用者對這個主題有興趣或是需要,透過主題,讓使用者之間互相提供資訊或是知識,並藉此產生交流及互動。