Javascript JSON对象访问错误
我最近正在使用JSONP开发一个phonegap应用程序,以创建一种动态的感觉。然而,我最近遇到了一点麻烦 以下函数用于将一些交付数据(无关)解析为jquery mobile:Javascript JSON对象访问错误,javascript,json,Javascript,Json,我最近正在使用JSONP开发一个phonegap应用程序,以创建一种动态的感觉。然而,我最近遇到了一点麻烦 以下函数用于将一些交付数据(无关)解析为jquery mobile: function parseProdData(results) { var html = ''; for (day in results.deliveries) { var today = results.deliveries[day].delivery; var to
function parseProdData(results) {
var html = '';
for (day in results.deliveries) {
var today = results.deliveries[day].delivery;
var today_date_arr = today.date.split('-');
var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
html += '<li><a href="#">';
html += today.delivery_day+', '+today_date;
html += '</a></li>';
console.log(html);
}
$('#JSON-list').append(html);
$('#JSON-list').trigger('create');
$('#JSON-list').listview('refresh');
}
有人知道为什么会出现这个错误吗
*编辑*
也就是说,我非常确信错误在顶部,而不是JQuery移动元素,就像我注释掉block$('#JSON list')。append(html)代码>带有$('#JSON列表')。追加()代码>然后它就可以工作了,但这显然不是一个解决方案
*编辑2*
问题只是在“deliveries”块的末尾有一个空元素,这导致了未捕获错误。我没有注意到它,因为元素是空的。感谢@eithedog为我指明了正确的方向我将json数据保存在result.json文件中,然后使用这个
$.getJSON('result.json', function(result, status){
var today = result.deliveries;
var html = "";
$.each(today, function(key, value){
$.each(value, function(key, value){
var today_date_arr = value.date.split('-');
var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
html += '<li><a href="#">'+value.delivery_day+', '+today_date+'</a></li>';
})
})
$('#JSON-list').append(html);
$('#JSON-list').trigger('create');
$('#JSON-list').listview('refresh');
})
.success(function(result) {})
.fail(function(jqXHR, textStatus, errorThrown) {
})
.complete(function() { });
$.getJSON('result.json',函数(结果,状态){
var today=结果交付;
var html=“”;
$.each(今天,函数(键,值){
$.each(值、函数(键、值){
var today_date_arr=value.date.split('-');
var today_date=today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
html+='';
})
})
$('#JSON list').append(html);
$('#JSON list')。触发器('create');
$('#JSON list').listview('refresh');
})
.success(函数(结果){})
.fail(函数(jqXHR、textStatus、errorshown){
})
.complete(函数(){});
问题在于“deliveries”块末尾有一个空元素,这导致了未捕获错误。我没有注意到它,因为元素是空的
感谢@eithedog为我指明了正确的方向 如果改用今天['delivery_day']
会发生什么?在控制台中运行代码不会对提供的JSON对象产生任何错误。您确定这与这部分代码有关,而不是这些函数中的一个:$(“#JSON list”).trigger('create')$(“#JSON列表”).listview(“刷新”)代码>?@Andy,交货日期和交货日期完全相同response@eithedog代码json list etc只是将代码附加到jquery mobile的末尾,ID为json list。该代码使用的是直接类型的html,因此我认为这不是问题所在。您的一些JSON条目不包含
date
字段(但这不会填充您的表),或者在某个地方附加了其他触发器,导致了问题。请您评论一下触发行,现在只添加html,好吗?
$.getJSON('result.json', function(result, status){
var today = result.deliveries;
var html = "";
$.each(today, function(key, value){
$.each(value, function(key, value){
var today_date_arr = value.date.split('-');
var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
html += '<li><a href="#">'+value.delivery_day+', '+today_date+'</a></li>';
})
})
$('#JSON-list').append(html);
$('#JSON-list').trigger('create');
$('#JSON-list').listview('refresh');
})
.success(function(result) {})
.fail(function(jqXHR, textStatus, errorThrown) {
})
.complete(function() { });