摘要:[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
以上,如果有前輩願意指點解惑,感激不盡....^.^