我已经查看了这个问题的一些现有答案,但无法解决我的问题。
我的一个观点中有一个python字典。我使用json.dumps()将其转换为json,然后将其发送到模板。
如果所有JSON值都没有空格,则模板会正确返回JSON。但是如果一个键的值由一个空格分隔,那么模板返回的JSON字符串将在空格后被截断。
Android SDK读取返回的JSON字符串,如果任何键具有空格分隔值,则我知道返回的JSON字符串被截断。
views.py:
@api_view(['POST'])
@permission_classes((AllowAny, ))
def temp(request):
if request.method == 'POST':
response_dict = {}
response_dict['KEY1'] = 'hello'
response_dict['KEY2'] = 'hello world'
param_dict = json.dumps(response_dict, separators=(',', ':'))
return render(request, 'validate.html', {'params_dict': param_dict})
validate.html
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-I">
<title>HELLO</title>
<script type="text/javascript">
function response(){
return document.getElementById('response').value;
}
</script>
</head>
Redirect back to the app<br>
<form name="frm" method="post">
<input type="hidden" id="response" name="responseField" value={{ params_dict }}>
</form>
如上图所示,如果KEY2的值为“hello world”,没有空格,即“helloworld”,则模板会正确返回JSON字符串ss,否则在“hello”之后将其截断
答案 0 :(得分:0)
您应该将值包装在模板中的引号中:
<input type="hidden" id="response" name="responseField" value="{{ params_dict }}">