2010-11-12 132 views
0

我有一個python FastCGI服務器,它接受來自客戶端的POST,我想使用JSON作爲客戶端和服務器之間的通信格式,但它真的讓我困惑,它是如何工作的。如何發佈JSON?

JavaScript中的JSON表示爲:

{'login_user': {'username':username, 'password':password}} 

當我張貼此JSON對象時,jQuery將重新編碼與dict並將其轉換爲字符串,對其進行編碼併發送出去:

login_user[username] = "kajjd"&loginuser[password] = "kdjfdj" #it's unescaped query string 

我的python服務器會收到這個字符串。我也想在服務器端使用JSON,我能做些什麼來將這個查詢字符串轉換回python中的JSON?這是快速的方式嗎?

我不知道我使用JSON是好方法,但是我看不出JSON有什麼好的一面,爲什麼不使用XML?我在問自己。

+2

可能重複:http://stackoverflow.com/questions/4162339/jquery-post-with -json-will-actually-post-array – soulseekah 2010-11-12 07:34:53

+3

它實際上是他的第三個問題(即我所見過的)關於同一事物 – mpen 2010-11-12 07:36:30

回答

2

用於Web應用程序通信的XML?深呼吸並思考一下。如果你對此有所懷疑,那就意味着你確實沒有必要這麼做。您依賴XML來處理相當複雜的數據集,並且可能會隨着時間的推移對協議的格式進行重大修改。本質上,XML會使這一點變好:變換數據,生成不同的版本,允許自行描述的格式由代碼進行分析,而這些代碼本身並不需要檢測,並知道該如何處理。否則,更喜歡更輕量級的東西(並且仍然可以實現幾乎相同的事情)。這就是爲什麼JSON是一個很好的選擇:它更緊湊,並且相對容易被人類和機器操縱。如果你需要減少帶寬,那麼看看二進制格式。

現在轉到真正的問題:請參閱JSON usage in JavaScript and Java的這個答案。它們都是支持解碼和編碼的雙向庫。

現在關於你的表單:如果你想使用JSON,你爲什麼要將字符串轉換爲字典格式?

要從服務器獲取數據,請執行正常的AJAX請求並分析或評估返回的值(如果可能的話使用本機API優先解析),或使用類似jQuery.getJSON的東西。或者jquery-json

要將請求發送到服務器,請查找jQuery.ajax()jQuery.post()

您可能也想看看這些問題: