picador
picador

Reputation: 155

change json structure in Django

I've never had to change json structure before using Django models, so I may have made a completely stupid question.

I have some data in my database and want to parse it in a json format. My view.py (a bit simplified) is:

def get_json(request):
    pos = Pos.objects.filter(id=1).values('lat', 'lon','id')
    return JsonResponse ({'position': list(pos)})

As a result I get this json object:

{ "position": [{"lat": "21", "id": 1, "lon": "21"}, {"lat": "22", "id": 1, "lon": "22"}, {"lat": "23", "id": 1, "lon": "23"}]}

In order to reduce the volume of unusefull data, I need to get a json structure like this:

{"id":"1", "position":{"lats":[21,22,23], "longs":[21,22,22]} }

I would be gratefull if sombody could help me

Upvotes: 0

Views: 1041

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 600041

You'll need to process the data; you can do whatever you like within the view function.

pos = Pos.objects.filter(id=1).values('lat', 'lon','id')
data = {"lats": [], "longs": []}
for p in pos:
    data["lats"].append(p['lat'])
    data["longs"].append(p['long'])
return JsonResponse({'position': data})

Upvotes: 1

Related Questions