rest_framework.response 메서드를 사용하여 여러 장고 모델의 개체를 보내고 있습니다. 그러나 응답에는 따옴표가있는 백 슬래시가 포함됩니다.Json은 백 슬래시가있는 데이터를 직렬화했습니다.
@api_view()
def myfunctions(request,id):
responseData = {}
userObject = TifUser.objects.filter(id=id)
attendances = Attendance.objects.filter(User=userObject)
leaves = Leave.objects.filter(User=userObject)
odds = ODD.objects.filter(User=userObject)
printjobs = PrintJob.objects.filter(User=userObject)
issues = Issue.objects.filter(User=userObject)
#serialize into json
userObject = serializers.serialize("json", userObject)
attendances = serializers.serialize("json",attendances)
leaves = serializers.serialize("json",leaves)
odds = serializers.serialize("json",odds)
printjobs = serializers.serialize("json",printjobs)
issues = serializers.serialize("json",issues)
#set responseData dictionary values
responseData['user'] = userObject
responseData['attendances'] = attendances
responseData['leaves'] = leaves
responseData['odds'] = odds
responseData['printjobs'] = printjobs
responseData['issues'] = issues
#responseData['attendances'] = userObject
return response.Response(responseData)
내가 무엇입니까 JSON 응답은 다음과 같습니다 : 그것을 할 수있는 다른 방법은
{"attendances":"[{\"model\": \"mainApp.attendance\", \"pk\": 5, \"fields\": {\"ArrivalTime\": \"2016-06-27T18:45:46.355Z\", \"DepartureTime\": null, \"User\": 4, \"ArrivalImei\": \"1\", \"DepartureImei\": null, \"Hash\": \"321f059c-4230-417a-adff-f0035097c85d\"}}, {\"model\": \"mainApp.attendance\", \"pk\": 13, \"fields\": {\"ArrivalTime\": \"2016-07-18T15:40:39.943Z\", \"DepartureTime\": null, \"User\": 4, \"ArrivalImei\": \"2\", \"DepartureImei\": null, \"Hash\": \"e61fad3e-8238-46fc-b09b-8b7754d43f3b\"}}]","printjobs":"[{\"model\": \"mainApp.printjob\", \"pk\": 1, \"fields\": {\"User\": 4, \"DateAdded\": \"2016-07-18\", \"Status\": \"disapproved\", \"Person\": 5, \"Level\": \"boss\", \"Client\": \"someone\", \"HandledBy\": \"tester\", \"SanctionedBy\": \"myself\", \"AdvancePayment\": 0, \"FinalPayment\": 1000, \"PaymentNumber\": 1, \"Remarks\": \"something\"}}]","odds":"[]","user":"[{\"model\": \"mainApp.tifuser\", \"pk\": 4, \"fields\": {\"AuthUser\": 7, \"Head\": null, \"Boss\": null, \"ClrLevel\": 1, \"Department\": 1, \"DesignationName\": 1, \"Name\": \"tester\", \"IsRegistered\": true, \"DateOfBirth\": \"1222-11-11\", \"Anniversary\": \"2001-12-22\", \"Mobile\": \"2134567890\", \"gcmDevice\": null, \"FatherName\": \"\", \"MotherName\": \"\", \"PersonalEmail\": \"\", \"Gender\": \"Male\", \"CurrentAddress\": \"\", \"PermanentAddress\": \"\", \"PANNumber\": \"\", \"AadharCardNumber\": null, \"BloodGroup\": \"\", \"MaritalStatus\": \"Married\", \"ProfilePhoto\": \"\", \"Imei\": \"\"}}]","leaves":"[]","issues":"[]"}
거기에 여기 내 견해는 무엇입니까? 내가 이해하는 것은 데이터를 두 번 인코딩하는 것입니다 (한 번 serializers.serialize에서 응답 한 다음 응답). 그러나 나는 그것을 원하지 않는다. 중첩 된 객체가 필요합니다. 다음과 같은 내용 :
{"attendances":[{"model": "mainApp.attendance", "pk": 5, "fields": {"ArrivalTime": "2016-06-27T18:45:46.355Z", "DepartureTime": null, "User": 4, "ArrivalImei": "1",...
아무에게도이를 알릴 수 있습니까? 미리 감사드립니다.
을 사라하는 경우? –
@ShangWang 예, 인쇄하는 동안 백 슬래시가 없습니다. 그것은 내가 그들을 얻고 있다는 반응 일뿐입니다. –
그러면 인용 부호를 이스케이프하는 json 문자열을 얻게됩니다. 당신은'result = json.loads (json_response)'를 할 수 있고'result'가 당신이 원하는 데이터 구조인지 알 수 있습니까? –