레이블이 google app engine인 게시물을 표시합니다. 모든 게시물 표시
레이블이 google app engine인 게시물을 표시합니다. 모든 게시물 표시

2009/12/18

GQL 결과를 JSON 포맷으로 변환시 Entity ID 얻어오기

이전 GAE에서 DB검색 결과를 JSON 포맷으로 가져오기라는 글에서의 JSON으로 뽑아낸 결과에는 Entity의 ID가 들어있지 않습니다. 이를 넣어주기 위해서는 아래의 코드를 json.py의 default 함수를 약간 변경해야 합니다.

[code python] ... def default(self, obj): ... elif isinstance(obj, db.Model): properties = obj.properties().items() output = {} for field, value in properties: # Added in order to include entity's id into JSON format output[field] = getattr(obj, field) output['id'] = obj.key().id() return output ... [/code]

2009/11/27

GAE에서 DB의 검색 결과를 JSON 포맷으로 가져오기

Google App Engine에서는 django를 기본으로 제공합니다. django를 사용하여 View와 Logic을 구분할 수도 있지만, 이 뿐만 아니라 simplejson을 사용할 수 있기 때문에 서버로부터 DB의 데이터를 JSON 포맷로 가져오거나 서버로 JSON 포맷의 데이터를 보내 DB를 업데이트 하는 동작을 할 수 있습니다. 물론 JSON Parser가 필요하지만, 왠만한 모든 언어로 포팅이 되어 있습니다.

더 편한 방법이 있겠지만, 구글의 예제 중 simplejson.JSONEncoder를 상속받은 GqlEncoder를 사용하면 매우 편하게 GqlQuery의 결과를 JSON으로 뿌릴 수 있습니다.
json.py...

아래는 위 파일을 가져다가 사용한 예제입니다. 바로 사용 가능한 완벽한 예제는 아닙니다.
펼쳐두기..
나중에 시간나면, 간단하지만 뭔소리인지 모르겠는 json.py를 뜯어 보겠습니다. 일단 문제 해결!