2012-01-07 12 views
0

は、私は単純にPHPでこのような送信されたフォームのすべてのフィールドを、シリアライズしたい:シリアライズフォーム送信された値は

json_encode($_GET) 

json.dumps(self.request.get)は動作しません:私は「

<type 'exceptions.TypeError'>: <bound method Request.get of <Request at 77ea190 GET http://localhost:8083/?a=value>> is not JSON serializable 
     args = ('<bound method Request.get of <Request at 77ea190...ocalhost:8083/?a=value>> is not JSON serializable',) 
     message = '<bound method Request.get of <Request at 77ea190...ocalhost:8083/?a=value>> is not JSON serializable' 

CGIモジュールを使用しようとしましたが、それもシリアライズ可能なエラーを与えません。私はあなたが疑問に思っている:私はこれを使用してテンプレートにデータを送り返し、フォームフィールドを再投入します。

+0

これらのパラメータをJSONでエンコードするよりも、これらのパラメータをURLエンコードする方がはるかに意味があります。この場合、「self.request.query」で元の形式で取得できます。 –

+0

@NickJohnson Populateと呼ばれるjQueryプラグインを使用していない場合、私はそれを行います。それは私のためにすべてのものの世話をする。フォームのコンテンツのJSON文字列が必要です。それは非常に便利です:http://tinyurl.com/lmblvv – ofko

答えて

5

self.request.getは、メソッドが返すものではなく、getメソッドを返します。あなたはこれをしなければならない。)

json.dumps(self.request.GET.items()) 

request.GETUnicodeMultiDictオブジェクトを返します、とrequest.GET.items()はタプルのリストを返します、各タプルは(key, valueています。

Cf. http://code.google.com/appengine/docs/python/tools/webapp/requestclass.htmlhttp://docs.webob.org/en/latest/reference.html#id1

+0

ありがとう、私は今仕事に戻ることができます;) – ofko

関連する問題