2010-10-30 4 views
14

Potrzebuję uzyskać dane z JSON, przeniesione przez ajax z klienta. Zasadniczo Kiedyś coś takiego:Jak obsługiwać żądanie JSON w butelce?

@route('/ajax') 
def serve_ajax(): 
    return main.parse_request(json.dumps(dict(request.GET))) 

Gdzie main.parse_request jest funkcją, która zawiera niektóre logiki do czynienia ze zmiennymi w JSON (jest to główny procedura naszego silnika gry).

Problem polega na tym, że nie mogę poprawnie obsłużyć partycji JSON, transformując request.GET w dyktafonie: bo w pewnym sensie, że już napisałem, nie mogę przekazać zagnieżdżonych obiektów i tablic, również każda wartość ma ciąg znaków wpisz, podczas gdy ja muszę mieć typy całkowite na liczbach całkowitych i typie ciągu na reszta inne.

Lub, ponieważ mogę uzyskać oryginalny ciąg zapytania (przez request.query_string), w jaki sposób mogę przekonwertować ciąg zapytania na oryginalny obiekt JSON?

Odpowiedz

21

Teraz od butelki 0,10 The request.json jest gotowy do użycia :)

dokument jest here.

17

request.json jest ograniczona przez MEMFILE_MAX.

Innym sposobem działa, jeśli żądanie danych jest większy niż MEMFILE_MAX

json.load(request.body)