无法使用javascript读取python生成的JSON

无法使用javascript读取python生成的JSON,javascript,python,Javascript,Python,我对python很陌生。我试图用python生成一个JSON数组响应,我的javascript应用程序可以使用它。然而,虽然我的javascript识别数组中有多个对象,但它不识别这些对象中的任何键。我假设这是由于我在python中创建数组和对象的方式,因为我可以将数组复制/粘贴到javascript对象,并且它可以完美地工作 下面是我的Python 3.7脚本的一个示例: data1 = '{"id": "1", "username": "", "url": "", "icon": "", "

我对python很陌生。我试图用python生成一个JSON数组响应,我的javascript应用程序可以使用它。然而,虽然我的javascript识别数组中有多个对象,但它不识别这些对象中的任何键。我假设这是由于我在python中创建数组和对象的方式,因为我可以将数组复制/粘贴到javascript对象,并且它可以完美地工作

下面是我的Python 3.7脚本的一个示例:

data1 = '{"id": "1", "username": "", "url": "", "icon": "", "display":' + json.dumps(state) +', "mouseover": "", "data":' + json.dumps(Payload) + '}'
data2 = '{"id": "2", "username": "", "url": "", "icon": "", "display":' + json.dumps(state) +', "mouseover": "", "data":' + json.dumps(Payload) + '}'

jsonObj = []

jsonObj.append(data1)
jsonObj.append(data2)

return {
    'statusCode': 200,
    'status': "ok",
    'data': jsonObj
}
以下是我的javascript示例:

    $.ajax({
    url: Url,
    type: "GET",
    success: function (result) {
        console.log(result.data);

        /*This didn't work --> "undefined"*/
        console.log("WTF?--->" + result.data[0].id)

        /*This didn't work --> "undefined"*/
        Array.from(request.data).forEach(element => {
            console.log(element.id);
        });


        /*This didn't work --> "undefined"*/
        var x = JSON.stringify(result.data);
        var z = JSON.parse(x);
        console.log(z[0].id)

        /*This didn't work --> "undefined"*/
        Array.from(z).forEach(element => {
            console.log(element.id);
        });


    }
})
正如我所说,javascript识别数组中有2个对象。这几乎就像javascript读取数组中的对象作为一个键值一样。输出看起来正确,并验证为JSON。不确定我做错了什么,但我猜这与我如何将jsonObj作为数据键值追加有关


有什么想法吗

多亏了Olian04,通过使用typeof确定数组中的对象是否是真正的对象而不是字符串,让我走上了正确的轨道。。。我能够确定数组中的对象实际上是字符串。为了解决这个问题,我只需通过foreach运行字符串数组并将其转换为对象

jsonObj = [];

Array.prototype.forEach.call(result.data, element => {
var converted = JSON.parse(element);
jsonObj.push(converted);
});

感谢Olian04通过使用typeof确定数组中的对象是否是真正的对象而不是字符串,让我走上了正确的轨道。。。我能够确定数组中的对象实际上是字符串。为了解决这个问题,我只需通过foreach运行字符串数组并将其转换为对象

jsonObj = [];

Array.prototype.forEach.call(result.data, element => {
var converted = JSON.parse(element);
jsonObj.push(converted);
});

检查结果的类型。数据[0]。它可能是字符串,而不是对象。您是对的。在识别出这个问题后,我可以通过foreach运行result.data对象并在将其推送到新对象之前使用JSON.parse对其进行转换,从而解决了这个问题。多谢各位!检查结果的类型。数据[0]。它可能是字符串,而不是对象。您是对的。在识别出这个问题后,我可以通过foreach运行result.data对象并在将其推送到新对象之前使用JSON.parse对其进行转换,从而解决了这个问题。多谢各位!