0
我正在構建一個Google Forms克隆,它將創建一個表單並將其存儲在服務器中。表單生成器輸出這JSON.stringify格式:如何通過Google App Engine上的jQuery.ajax接收JSON
{"method":"post","action":"/test","html":[{"input_type":"input_text","caption":"What is your name?"},{"input_type":"radio","caption":"What is the name of your dog?","options":{"benny":"Benny","billy":"Billy","bobby":"Bobby"}}]}
我想送這個給我的App Engine的後端是這樣的:
$.ajax({
type: "POST",
url: save_url,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: json_string,
success: function (e) {
console.log(e);
}
});
但我怎麼上「開放」這個JSON字符串我的服務器,以便我可以將其插入到我的數據庫?
第一個問題:我應該使用self.request.body
來獲取數據對象(json字符串),還是有更好的方法來獲取它。現在我已經做了解碼字符串以獲得正確的格式。
def post(self):
form_elements = json.loads(urllib.unquote_plus(self.request.body))
self.write(form_elements)
第二個問題:使用json.loads
解析JSON字符串,我得到這個錯誤:ValueError: No JSON object could be decoded
爲什麼它不知道它的JSON?
看到這個問題:http://stackoverflow.com/questions/1171584/how-can-i-parse-json-in-google-app-engine – mccannf
如果我理解正確,該問題的最佳答案是使用json庫並使用json.loads函數,但正如我在我的問題中提到的那樣,這就是我已經使用的 –
您可以顯示代碼生成JavaScript變量json_string的位置嗎?你有沒有試過記錄self.request.body的樣子?我懷疑你實際上並沒有發送一個json字符串。 – dragonx