我曾尝试按照多个指南来说明如何执行此操作 - 但没有一个可行。我还尝试在现有函数中添加>>> for line in fileContents:
... items = line.strip().split(';')
- 函数,但没有成功。这就是我的JSON结果(它只是一个片段,在这里直接复制时可能会被破坏,但你明白了这一点):
$.each
我可以从“path_id”获取数据,但不能从“trace_location”获取数据,使用以下代码:
{
"loc": [
{
"path_id": "Trail1",
"places": [
{
"way_distance": 2,
"trace_location": {
"lat": 51.2383342365623,
"lng": 20.265387296676636
},
"trace_info": "",
"way_name": ""
}
]
}
]
}
当我执行console.log(b);时,系统会响应以下错误:
$.getJSON(url, function(data){
$.each(data.loc,function(i,emp){
var a = this.path_id;
console.log(a); //works
var b = this.places[0].trace_location;
var c = this.places.trace_location;
console.log(b); //seems to output objects, but then crashes
console.log(c); //output is undefined
});
});
我希望能够从“trace_location”输出数据,而不是tringhar.html:36 Uncaught TypeError: Cannot read property 'trace_location' of undefined
或有错误。谢谢。
编辑:
仍未使用此代码:
undefined
答案 0 :(得分:1)
places
是一个数组。
var c = this.places.trace_location;
需要
var c = this.places[0].trace_location;
Here's a CodePen with the example - 它正在运作
它在您的示例中崩溃的原因不是因为console.log(b)
语句,而是因为您尝试从undefined访问trace_location
。从代码中删除var c
和console.log(c)
语句。
答案 1 :(得分:0)
这是一个jsfiddle,它有效。其余的json还有其他问题,或者你的一个对象实际上没有你想要在json feed中访问的属性。例如,clicks.zipWith(getEventsFromWeb(), (click, Events) -> Events))
在json中没有place
。
trace_location