2016-11-04 8 views
1

web2pyからJSONリストとしてリストを返す方法はありますか?web2pyからJSONとしてリストを返します

私のルートが.jsonで終わったら、web2pyは辞書を有効なJSONに変換します。戻り値はしかし、リストである場合、それが突然、それは完全に(クロームERR_INVALID_CHUNKED_ENCODINGと不平を言う)

return ["test", "test"] 

ディスプレイ

testtest 

return [dict(test="test"), dict(test="test")] 

休憩を振る舞います。期待する動作は、それぞれ、明らかに次の有効なJSON文字列です:

["test", "test"] 

[{"test":"test"}, {"test":"test"}] 

答えて

0

@service.jsonデコレータとJSONサービスを登録し、それを呼び出す `アプリ/コントローラ/コール/ json /メソッド 'は私に期待した振る舞いを与えました:

def f(): 
    return ["test1", "test2"] 

def call(): 
    return service() 

respオンセ体は、JSON

に設定されているコンテンツタイプと

["test1", "test2"] 

あります

2

あなたはJSONレスポンスを返すようにしたい場合は、あなたの関数がJSONを返すか、そのビューの実行をトリガしなければならないのいずれかJSONが生成されます。 web2pyでは、コントローラ関数が辞書を返す場合にのみビューが実行されるため、関数はビューが実行されることになりません(辞書が返されないため)。関数が辞書を返す場合は、.jsonビューを定義するか、response.generic_patternsで明示的にgeneric.jsonビューを有効にする必要があります(ただし、generic.jsonは実際には適切ではありません。 JSON - リストのみを出力するために使用することはできませんでした)。

最も簡単な解決策は、直接ちょうど出力JSONにある。さらに、単に

import json 
    ... 
    return json.dumps(['test', 'test']) 

か:

return response.json(['test', 'test']) 
関連する問題