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