2012-02-21 10 views
3

$ .ajax関数を使用してjsonデータをserverside関数に送ります。

var jsonObjects = [{id:1, name:"amit"}, {id:2, name:"ankit"},{id:3,name:"atin"},{id:1, name:"puneet"}]; 

$.ajax({ 
    url: "{{=URL('myControllerName')}}", 
    type: "POST", 
    context: document.body, 
    data: {students: JSON.stringify(jsonObjects) }, 
    dataType: "json", 
    success: function(){ 
     alert('ok'); 
    } 

}); 

サーバサイド機能では、どのようにデータにアクセスできますか?私はPythonのWebフレームワークのすなわちでこれをやりたい

//this code is written in grails 
import grails.converters.JSON; 
List<JSON> students = JSON.parse(params.students) //students in request params is parsed to json objects and stored in the List 
println "Student id: " + students[0].studentId //first element of the students list is accessed as a map holding a key studentId 

---:

誰かとGrailsのためのコードを与えることがあります。 web2py。

params.studentsとrequest.studentsとしてアクセスしようとしましたが、運はありません。

送信されたデータにアクセスするための正しい構文は何ですか? (私はjQuery APIをチェックしましたが、同じものは見つかりませんでした)。

おかげで、

Vineet

+0

Python 2.6にはJSONの解析に使用できる 'json'モジュールがあります([JSONとPythonのデコード方法](http://stackoverflow.com/q/2331943/218196を参照)。 ))。 web2pyがどのようにリクエストを処理するかについては、ドキュメントを見てください。 –

+0

jsonモジュールをインポートして、データを解析しようとしました。 JSONエラーはありません。しかし、データが正しく割り当てられていないためにスローされるエラー(params.studentsでは、paramsは定義されていません)。 – Vineet

+1

だからこそ、私はあなたがweb2pyを読んで、要求データをどのように利用できるようにする必要があると言いました。別の言語のコードをコピーして貼り付けることはできません。明らかにweb2pyは 'params'変数を提供しません。私はこれがいくつかのチュートリアルでカバーされていると確信しています。 –

答えて

4

あなたが混乱しています。

「サーバー側のデータにアクセスする方法」は、jquery、およびサーバー側のWebフレームワークとは関係ありません。

リクエストオブジェクトからデータを抽出する必要があります。 http://web2py.com/book/default/chapter/04#request

+0

素晴らしい! request.vars.studentsが機能しました。私はそれを知らなかった。どうもありがとうございました !!私はこの答えを受け入れました:-) – Vineet

+0

@Vineet:問題ありません!私はいつも人々が自分の問題を解決する方法を学ぶのを助けることをうれしく思っています。 – Marcin