如何在jQuery中读取Json文件

时间:2013-07-09 18:05:23

标签: json

我正在使用VS2012,并运行ASP.NET MVC4项目。

我似乎无法在下面解决这个问题:

$.ajax({
    url: "~/xml/JsonTest.json",
    type: "GET",
    dataType: "json",
    success: function (json) {
        alert("HI");                
    }
}); 

我也是这样试过的,但无济于事:

$.getJSON('../xml/JsonTest.json', function (json) {            
        alert("GET JSON !");
    });

它是否以某种方式找不到目录结构? 谢谢。 鲍勃

2 个答案:

答案 0 :(得分:2)

第一个肯定不起作用,因为~并不意味着任何客户端。第二个例子请求了什么实际的URL?它会发送一个AJAX请求吗?回答是什么?

如果您有动态服务器端URL,那么您将需要使用服务器端代码在呈现的输出中动态构建它。像这样:

$.ajax({
    url: '@Url.Content("~/xml/JsonTest.json")',
    type: 'GET',
    dataType: 'json',
    success: function (json) {
        alert("HI");                
    }
});

这将导致客户端JavaScript使用服务器端路径"~/xml/JsonTest.json"的完整URL进行呈现。

答案 1 :(得分:0)

我的案例的最佳解决方案是使用C#方法对其进行正确编码,如下所示:

   public string getJsonParameters()
    {

        JavaScriptSerializer ser = new JavaScriptSerializer();

        string jsonStr = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/myKeys.json"));                        

        JsonParameters jsonData = (JsonParameters)ser.Deserialize(jsonStr, typeof(JsonParameters));            

        return  jsonStr;
    }