我正在自学 jquery 和 json 来工作。我一直在取得很大的进步,但现在让自己很困惑。我的最终目标是能够从我拥有的文本文件中解析 json,然后将它们存储为 javascript 对象,这样我就可以用它做更多的事情。
这就是我所做的。我有以下 json 格式的数据(从我编写的 java 类创建)。请注意 data.json 看起来像这样:
{"Time": 15,
"Distance": 20,
"Position":[{"x":5,"y":10},
{"x":15,"y":20}]}
我在这个问题中格式化了上面的内容,以便通过单独的行更容易阅读,但原始文件在一行中包含所有内容。
我在脚本中使用了以下代码:
$(document).ready(function(){
console.log("ready!");
$.getJSON('data.json', function(key,val)
{
alert(val.Time);
alert(val.Distance);
alert(val.Position);
});
});
但它输出的是三个“未定义”警报。为什么?我的最终目标是将时间、距离和位置存储为 javascript 对象,以便我可以将它们绘制在我用 html 制作的图表上。但是,我显然无法做到这一点,因为我的警报没有正确读取/解析 json 对象。
于是我凭直觉把它改成如下:
$(document).ready(function(){
console.log("ready!");
$.getJSON('data.json', function(key,val)
{
alert(key.Time);
alert(key.Distance);
alert(key.Position);
});
});
好吧,这些都是很有希望的,因为我收到了以下警报:
Alert 1 Output: 15,
Alert 2 Output: 20,
Alert 3 Output: [Object Object], [Object Object]
好吧,我更接近了,但现在很困惑。关键不应该是给我警报输出“时间”、“距离”和“位置”,而 val 是“15”、“20”和“[Object Object]、[Object Object]”。我认为 json 有点像哈希表。嗯。
另外,我是否需要执行 .each(key, val) 来解析名为 Position 的列表?因为显然 Object Object 对我没有多大帮助。我基本上想将此列表位置保存为 javascript obj 之类
myList = [[5, 10], [15,20]]
无论如何,这是我的想法。我感谢你的时间。我会投票给任何回复并帮助我的人。这对我很重要。
问候, GeekyOmega