Если вы используете CherryPy 3.2.0-rc1 , тогда вы можете использовать декораторы @json_in
и @json_out
( см. Здесь ).
Таким образом:
@cherrypy.expose
@tools.json_in(on = True)
@tools.json_out(on = True)
def json_test(self):
return { 'message':'Hello, world!' }
вернет JSON в браузер, например
$(document).ready(function() {
$.getJSON('/json_test', function(data) {
alert(data.message);
}
}
Вы должны помнить, что CherryPy ожидает, что сообщения JSON будут иметь тип содержимого application/json
, чтобы сделать это с jQuery, либо используйте $.ajax
и установите вручную contentType
, либо используйте следующую вспомогательную функцию:
$.postJSON = function(url, data, callback) {
$.ajaxSetup({ scriptCharset:"utf-8",
contentType:"application/json; charset=utf-8" });
$.post(url, $.toJSON(data), callback, "json");
}
Эта функция использует плагин jquery-json , но вы можете использовать другой метод для преобразования в JSON.