CherryPy Как ответить JSON?

В моем контроллере / обработчике запросов у меня есть следующий код:

def monkey(self, **kwargs): cherrypy.response.headers['Content-Type'] = "application/json" message = {"message" : "Hello World!" } return message monkey.exposed = True 

И, на мой взгляд, у меня есть этот javascript:

 $(function() { var body = document.getElementsByTagName("body")[0]; $.ajaxSetup({ scriptCharset : "utf-8", contentType: "application/json; charset=utf-8" }); $.post(" http://localhost/wsgi/raspberry/monkey ", "somePostData", function(data) { try{ var response = jQuery.parseJSON(data); body.innerHTML += "<span class='notify'>" + response + "</span>"; }catch(e){ body.innerHTML += "<span class='error'>" + e + "</span>"; } } ); }); 

И, наконец, вот моя проблема. Я не получаю ответа от JSON, и я не уверен, почему.

Во-вторых, сможет ли кто-нибудь объяснить, как форматировать данные в моем ответе контроллера / запроса-обработчика как ответ JSON самым простым способом, без использования инструментов?

2 Solutions collect form web for “CherryPy Как ответить JSON?”

Не уверен, что вы подразумеваете под «без использования инструментов» – Python – это «инструмент», правильно?

Только с Python и его стандартной библиотекой (2.6 или выше) добавьте в начало своего модуля

 import json 

и измените оператор return на

 return json.dumps(message) 

Обратите внимание, что в CherryPy 3.2 (почти сделано!) Будет пара JSON-инструментов, чтобы сделать это еще проще:

 @cherrypy.expose @tools.json_out() def monkey(self, **kwargs): return {"message": "Hello World!"} 

json_out кодирует вывод и устанавливает для вас заголовок.

  • Элементы в объекте JSON не работают, используя «json.dumps»?
  • Обновление json-поля в Postgres
  • Данные JSON преобразуются в модель django
  • Бутылка и Джсон
  • отправка NaN в json
  • Анализ синтаксического анализа многострочного файла JSON с использованием Python
  • Как получить данные JSON из службы RESTful с помощью Python?
  • скачать изображения с помощью Google Custom Search api
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.