麻烦大家帮我看看为什么不能获得返回值?

//获取json中的数据
function getDataByDept(obj){
var dataset = [];
$.getJSON("tourism.json",function(data){
if((obj.indexOf("全院")==0 )&& ("全院".indexOf(obj) == 0)){
$.each(data.provinces,function(i,info){
var temp = {};
temp.name = info["name"];
temp.dept = info["dept"];
temp.value = info["value"];

            dataset.push(temp);
        });
        return dataset;
    }else{
        $.each(data.provinces,function(i,info){
            if(info["dept"] == obj){
                var temp = {};
                temp.name = info["name"];
                temp.dept = info["dept"];
                temp.value = info["value"];

                dataset.push(temp);
            }
        });
        return dataset;
    }
});

}

$(document).ready(function(){

var str = "全院";
alert(getDataByDept(str));
});

    为什么打印出来是undefined?请问总应该怎么获得这个返回值呢?求指教

tourism.json里有什么

给出一段代码片段,不可能帮助到你。你的服务器代码、以及别的代码,这些都影响到程序执行的结果。

但是你可以用fiddler这个工具,去拦截你的浏览器和服务器的通讯,特别可以看到返回的json是什么样的。
同时,你还可以用IE F12或者Firebug等去调试你的js。

如果你不明白以上所说,或者你完全一瞧不通,那么建议你下载一个完整的例子交差。

你的json数据格式是否正确啊