Javascript $.getJSON()+;$。每个()都会产生一些对象';s键名未定义
尽管我看到了很多与这个话题相关的问题,但我的问题似乎不同 我最好举个例子来解释我的问题:Javascript $.getJSON()+;$。每个()都会产生一些对象';s键名未定义,javascript,html,json,Javascript,Html,Json,尽管我看到了很多与这个话题相关的问题,但我的问题似乎不同 我最好举个例子来解释我的问题: var data = [ { "Nº": 1, "Gasolina": "4,94", "Álcool": "4,28", "X": 397, "Y": -111 }, { "Nº": 2, "Gasolina": "4,10", "Álcool": "4,
var data = [
{
"Nº": 1,
"Gasolina": "4,94",
"Álcool": "4,28",
"X": 397,
"Y": -111
},
{
"Nº": 2,
"Gasolina": "4,10",
"Álcool": "4,84",
"X": -477,
"Y": 101
}
];
$.each(data, function (key, val)
{
console.log(val);
console.log(val['Nº']);
console.log(val['Gasolina']);
});
console.log("------------------------------");
// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data)
{
$.each(data, function (key, val)
{
console.log(val);
console.log(val['Nº']);
console.log(val['Gasolina']);
});
});
输出:
{Nº: 1, Gasolina: "4,94", Ãlcool: "4,28", X: 397, Y: -111}
1
4,94
{Nº: 2, Gasolina: "4,10", Ãlcool: "4,84", X: -477, Y: 101}
2
4,10
------------------------------
{Nº: 1, Gasolina: "4,94", Álcool: "4,28", X: 397, Y: -111}
undefined
4,94
{Nº: 2, Gasolina: "4,10", Álcool: "4,84", X: -477, Y: 101}
undefined
4,10
因此,我的问题是,为什么关键名称“Nº”和“Álcool”在这两种情况下表现不同。看完这篇文章后,我想你们几乎可以把任何东西作为一个关键词。那么,为什么在使用$.getJSON()
时,即使在console.log(val)
中正确地打印了“Nº”(和“Álcool”)键名,却没有定义它们呢
注意,这在Nodejs中有效。这个问题只有在我尝试在HTML中使用它时才会出现。您是否尝试在HTML文件中添加HTML编码 用于HTML 4
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
用于HTML5
<meta charset="UTF-8">
将此
meta
标记添加到html文件中的head
标记中。
是否尝试在html文件中添加html编码
用于HTML 4
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
用于HTML5
<meta charset="UTF-8">
将此
meta
标记添加到html文件中的head
标记中。
您有编码问题
UTF-8中的Á
字符在ISO-8859-1中显示为Ã
您的页面将作为UTF-8使用,并显示为ISO-8859-1
尝试转义字符,您将看到:
// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data)
{
$.each(data, function (key, val)
{
console.log(val);
console.log(val['N\u00ba']);
console.log(val['Gasolina']);
});
});
将页面编码更改为UTF-8
:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
您有编码问题 UTF-8中的
Á
字符在ISO-8859-1中显示为Ã
您的页面将作为UTF-8使用,并显示为ISO-8859-1
尝试转义字符,您将看到:
// "data.json" contains the same info as the variable "data"
$.getJSON("data.json", function(data)
{
$.each(data, function (key, val)
{
console.log(val);
console.log(val['N\u00ba']);
console.log(val['Gasolina']);
});
});
将页面编码更改为UTF-8
:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
因为Nº!=Nº
,我怀疑您的两个文件没有使用相同的字符编码,即UTF8,请重新保存以使用相同的编码,并测试可能的副本,我不敢相信我有多愚蠢。你是对的,我忘了在html文件中添加UTF-8元。太简单了!因为Nº,我怀疑您的两个文件没有使用相同的字符编码,即UTF8,请重新保存以使用相同的编码,并测试可能的副本,我不敢相信我有多愚蠢。你是对的,我忘了在html文件中添加UTF-8元。太简单了!