我不是程序员,所以我不能去Django或Jquery的源代码,弄清楚这些函数为什么不能返回我想要的东西,因为我根本不懂源代码。在
我为自己做了一个小项目,下面是我对json部分的困惑: 下面是我的django/python函数:
def searchPatients(request):
patients = Patients.objects.filter(KeyName__icontains=request.POST.get('KeyName'))
response = []
for patient in patients:
tmpvar = {}
tmpvar = { 'Name1':patient.Name1, 'Name2':patient.Name2 }
response.append(tmpvar)
return HttpResponse(json.dumps(response), content_type="application/json")
我登记了壳牌公司,json.dumps文件(回应)给了我这个:
^{pr2}$我看还可以。然后我就不明白了。这是我的JS/JQuery函数:
input_newRecord_Search.keyup(function() {
$.post('/edit/ajax_search_patients', { KeyName: $(this).val() }, function(data) {
var patients = jQuery.parseJSON(data);
for (var patient in patients) {
$('#searchResults ul').append('<li>'+patients[patient].Name1+'</li><li>+'patients[patient].Name2+'</li>');
};
}, "json");
});
我得到一个错误:“语法错误:JSON.parse:意外字符“。 我检查了jquery从服务器获取的数据:控制台.log(数据):
[{Name2: "TestName2", Name1: "TestName1"}, {Name2: "TempName2", Name1: "TempName1"}]
所以,据我所知,JSON语法看起来像-{“key”:“value”},而且我缺少key字段上的引号。我不明白为什么我会想念他们。例如,我可以通过regex手动设置它们,但我认为这不是正确的方法。使用regex,我可以不需要jQuery.parseJSON(),但我还是想使用jQuery函数—毕竟它正是为了这个目的而设计的。 有人能帮我做这个吗?在
诀窍在于,当您告诉^{} 服务器正在返回JSON时,它会为您解析JSON。在
当您在已经解析的数据上使用
parseJSON
时,您将尝试解析JavaScript对象的字符串表示。只要使用已经解析的数据,一切都应该正常工作。在jQuery会自动将json转换为js对象。你不需要自己调用parse。在
相关问题 更多 >
编程相关推荐