[jQuery]-jQuery接收Server端回傳的JSON格式

摘要:[jQuery]-jQuery接收Web端回傳的JSON格式

Server 端使用的是GoogleAppEngine for Python

Client 端使用的是jQuery

需求:CLIENT 端 POST 資料至 Server 端驗證之後,將驗證的結果以JSON的格式回傳給CLINET端

問題:

SERVER 端將驗證的結果,以模擬JSON的格式即 key1:value1,key2,value2的方式回傳至 CLIENT端之後,一直無法由外掛的 $.JSON 做正確的解析,所以只好在 CLIENT 端收到回傳的驗證字串之後,將內容自行轉換成object

 

sol:

(一). 使用 javascript 的 eval 函式做轉換

a).想辦法(確定)讓 SERVER 端回傳的字串格式為

{'key1':'value1','key2':'key2','key3':'key3'}

b).於 CLIENT 端接收到回傳字串時,帶入 javascript 的 eval() function

eg.  var rtnResultObj = eval('(' + rtnResult + ')'); (rtnResult即為上面的回傳字串)

c).取出/使用接收回來的字串

eg.

rtnResultObj.key1===>會取得value1

rtnResultObj.key2===>會取得value2

(二).於 SERVER 端在 python import simplejson 來產生要回傳的 JSON 字串,並於 CLIENT端 使用 JSON2 的外掛來接收

a.) SERVER端的 simplejson ,在網路上的找到的例子都是使用

1.)simplejson.loads(string)
測試時總是出現 exception (
ValueError('No JSON object could be decoded')
2.)simplejson.dumps (string , sort_keys=True)

測試雖然沒有 exception ,但總覺得跟原本的字串沒什麼兩樣,而且指定排序也沒效果。

試過以上兩種方法,都沒什麼成效,所以我還是選擇使用了上面介紹的第(一)種方法。

參考資料:http://simplejson.googlecode.com/svn/tags/simplejson-2.1.0/docs/index.html

 

b.) CLIENT 端的部份使用了 json2 的外掛來接收 json 格式的資料,但測試下來也是沒有很順利的得到我要的結果,
結果如何我已經忘了,之後如果有時間再做一次測試。


參考資料:http://code.google.com/p/jquery-values/source/browse/trunk/rest/json2.js?r=74

 

以上,如果有前輩願意指點解惑,感激不盡....^.^