Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON检查是否没有可用数据_Javascript_Jquery - Fatal编程技术网

Javascript JSON检查是否没有可用数据

Javascript JSON检查是否没有可用数据,javascript,jquery,Javascript,Jquery,我使用此代码从json获取数据 $.each(data.id, function(index, value){ output += '<li>'+value.title+'</li>'; } $('#listview').html(output).listview('refresh'); $.each(data.id、函数(索引、值){ 输出+=''+值。标题+''; } $('#listview').html(输出).listview('refresh');

我使用此代码从json获取数据

$.each(data.id, function(index, value){

output += '<li>'+value.title+'</li>';

}

$('#listview').html(output).listview('refresh');
$.each(data.id、函数(索引、值){
输出+='
  • '+值。标题+'
  • '; } $('#listview').html(输出).listview('refresh');
    有时没有可显示的记录


    如何知道是否没有记录并显示警报示例:警报(“无记录”);?

    我假设
    data.id
    是一个数组,因为您使用了
    $。每个
    上都有:

    if (data.id.length == 0) {
      // no data
    }
    

    检查对象中是否有数据的最常用方法是使用

     length
    
    方法

    但您应该非常小心。例如,如果您的数据采用以下格式:

    SourceData =[
                    {
                        ID:1,
                        Title:'Test1',
                    },
                    {
                        ID:2,
                        Title:'Test2',
                    },
                    {
                        ID:3,
                        Title:'Test3',
                    },
                ]
    
    然后执行以下检查:

    if(SourceData.ID.length>0)
    
    由于某些原因(服务器错误、请求超时等)“SourceData”未定义,将抛出JavaScript错误

    这就是为什么我要使用组合条件:

    if(typeof SourceData==='undefined'|typeof SourceData.ID==='undefined'|SourceData.ID.length==0) 
    
    然后,如果“SoruceData”有问题(未定义),则会显示一条消息“No Data”。或者,当“SourceData”初始化时,例如,有人更改了服务器返回数据的结构(不再是“ID”,现在是“TitleID”),将不会生成错误


    请注意,我使用的是“|”而不是“| |”。这意味着,如果其中一个条件为“true”,则不会执行him右条件。

    通常在javascript中使用此代码检查数组是否为空:

     if (myArray.length) {  // javascript shortcut for data.id.length>0
            alert('no elems found');
        }
    
    在您的特定情况下,以下代码应该有效:

       if (data.id.length) { 
            $.each(data.id, function(index, value){
            output += '<li>'+value.title+'</li>';
            });
            $('#listview').html(output).listview('refresh');
        } else {
            alert('no records found ');
        }
    
    if(data.id.length){
    $.each(data.id,函数(索引,值){
    输出+='
  • '+值。标题+'
  • '; }); $('#listview').html(输出).listview('refresh'); }否则{ 警报(“未找到记录”); }

    希望这有帮助。

    我有麻烦了。不是应该是
    $。每个(数据,…)
    ?例如,
    如果(data.id.length==0){alert(“No records”);return;}
    。显示响应JSON的预期结构肯定会有所帮助