根据我之前的post,我正在尝试从名为winners.json的JSon文件中获取一个名称,其格式类似于:
{"driver":[
{
"Year":1984,
"Name":"Name1",
},
{
"Year":1985,
"Name":"Name2",
},
[etc...]
]}
在JavaScript文件中,我从滑块获取一个值,这将是我想在JSon文件中搜索的年份。使用控制台,该值的typeof为“number”。但是,当我遍布JSon搜索年份时,控制台说Json中的“Year”字段是未定义的值,因此我无法获得“Name”字段:
var len=winners.winner.length;
console.info(len + " values in JSon");
for (var i=0; i < len; i++) {
console.info("Reading line " + i + " Type: " + typeof(winners.winner[i].Year) + " Year: " + winners.winner[i].Year);
[more code...]
}
正确读取var len。我尝试做一个演员编号(winners.winner [i] .Year),但我得到了NaN值。
感谢。
答案 0 :(得分:0)
假设您的代码与以下内容类似:
var jsondata = '{"winner":[ { "Year":1984, "Name":"Name1" }, { "Year":1985, "Name":"Name2" }]';
console.info(jsondata.length)
for (var i=0; i < len; i++) {
console.info("Reading line " + i + " Type: " + typeof(jsondata.winner[i].Year) + " Year: " +
winners.winner[i].Year);
}
然后len
变量将返回一个正整数是正确的,但这不是JSON中数组元素的数量,而是字符串中的字符数。正如@Nirk所提到的,需要调用JSON.parse(jsondata);
才能将JSON字符串转换为JavaScript对象。