JSON响应不是普通对象 - javascript

这是来自获取Django应用程序所有对象的请求,而不是获取普通对象,因为打印显示它只是一个字符串

Javascript:

  $.getJSON("/cadastro/getAllPessoas/", function(data){
    console.log(data);
    console.log(typeof(data));
    console.log($.isPlainObject(data));
    //Raises error on isArrayLike():
    $.each(data,function(){
      arrayValues.push([this["pk"],this["fields"]["nome"]]);
    })
  });

控制台输出:

[{"model": "cadastroapp.djangotestpessoa", "pk": 1, "fields": {"nome": "Gabriel"}}] 
string
false

views.py:

from django.core import serializers
def getAllPessoas(request):
    data = serializers.serialize('json', Pessoa.objects.all(), fields=('objectid','nome'))
    return JsonResponse(data, safe=False)

参考方案

您正在Django视图中进行两次序列化,因为serializers.serialize和JsonResponse都转换为JSON。不要那样做只需返回带有序列化值的正常响应即可。

return HttpResponse(data, content_type='application/json')

Javascript和Python JSON-未定义变量 - javascript

例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

json数组,其中in数组返回错误?坏字符串 - javascript

我将json字符串文件解析为python,并且始终返回error。我使用了在线json格式化程序和验证器,它们也返回错误,因此我需要帮助使我的json正确并告诉我错误 [{ "sentence_id": "TR.00001", "sentence": { "text": …