2016-11-04 5 views
1

web2py에서 JSON 목록으로 목록을 반환하는 방법이 있습니까?web2py에서 JSON으로 목록 반환

내 경로가 .json으로 끝나면 web2py가 사전을 유효한 JSON으로 변환합니다. 반환 값은 그러나 목록을 경우, 예기치 않게

return ["test", "test"] 

표시

testtest 

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

완전히 휴식을 (크롬 ERR_INVALID_CHUNKED_ENCODING과 불평을) 동작합니다. 기대하는 행동은 분명 각각 다음과 같은 유효한 JSON 문자열입니다 : 당신이 JSON 응답을 반환하려면 함수가 JSON을 반환 또는 뷰의 실행을 트리거 중 하나를 수행해야합니다,

["test", "test"] 

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

답변

0

@service.json 장식과 JSON 서비스를 등록하고 그것을 호출하는`응용 프로그램/컨트롤러/call/json/method '는 내가 예상했던 행동을 내게 주었다.

resp 온세 체

를 JSON 설정된 콘텐츠 유형

["test1", "test2"] 
이다

2

그 JSON을 생성합니다. web2py에서 컨트롤러 함수가 사전을 반환하는 경우에만보기가 실행되므로 함수는보기를 실행하지 않습니다 (사전을 반환하지 않음). 함수가 사전을 반환했다면 여전히 .json보기를 정의해야하거나 response.generic_patterns을 통해 generic.json보기를 명시 적으로 활성화해야합니다. (실제로는 generic.json이 적합하지 않습니다. 함수에 의해 반환 된 전체 사전을 JSON - 목록 만 출력 할 수는 없습니다.)

가장 간단한 해결책은 바로 바로 출력 JSON이다 : 더 간단하게

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

나 :

return response.json(['test', 'test']) 
관련 문제