Django/JS公司:json.dumps文件以及解析.json

2024-05-13 22:45:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我不是程序员,所以我不能去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函数—毕竟它正是为了这个目的而设计的。 有人能帮我做这个吗?在


Tags: 函数injsonfor源代码responserequestli
2条回答

诀窍在于,当您告诉^{}服务器正在返回JSON时,它会为您解析JSON。在

// This line can be safely removed;
// jQuery is doing it for you behind the scenes
var patients = jQuery.parseJSON(data);

当您在已经解析的数据上使用parseJSON时,您将尝试解析JavaScript对象的字符串表示。只要使用已经解析的数据,一切都应该正常工作。在

jQuery会自动将json转换为js对象。你不需要自己调用parse。在

相关问题 更多 >