正在从 ASP.NET 服务器导入 JSON,用于 JSON.NET

Importing JSON from ASP.NET server, for JSON.NET

问题:
从我服务器上的 .json 文件中提取 JSON 到代码中以便将其反序列化为 .NET 对象的最佳方法是什么?

详情:
我的 VS2013 Express MVC 项目中保存了一个名为 "backlog.json" 的文件。该文件不是由我的项目创建的 - 它已通过 "Add Existing Item."

添加到项目中

"backlog.json" 是 json 个对象的集合。我需要从集合中提取这些对象,以便我可以将这些对象添加到我的项目使用的数据库中并使用我的项目进行操作。

该项目使用 .NET Framework 4.5,我已使用 NuGet 包管理器将 NewtonSoft's Json.NET 添加到项目中。将 "backlog.json" 中的对象放入我的代码后,我将使用 Json.NET 通过 C# 反序列化和操作对象。

例如,类似于:

public void AddJSON(EFWorkOrderModelContainer WorkOrderContainer)
{
    // Pull backlog.json from C:\Project\App_Data\backlog.json
    // De-serialize and parse
}

您不能执行 string myjson = File.ReadAllText("~/App_Data/backlog.json"); 因为 File class 不知道如何从应用程序根相对路径进行转换。您可以执行 string myjson = File.ReadAllText(Server.MapPath("~/App_Data/backlog.json")); 或者如果 Server 不在范围内 string myjson = File.ReadAllText(HttpContext.Current.Server.MapPath("~/App_Data/backlog.json"));

您不应该这样做 string json = File.ReadAllText(@"C:\Project\App_Data\backlog.json");,因为这取决于您将网站放置在网络服务器中的位置,这是个坏主意。

是的,MSDN 目前已关闭,因此您不能使用它来查找 File class 的命名空间。但是在 Visual Studio 中,如果您只键入 File,您可以使用 Intellisense 通过右键单击 File.

自动为您导入命名空间

我不会将我自己的答案标记为 "answered,",但实际上在 Newtonsoft.com 的网站上描述了类似的方法。单击 here 查看示例...它准确描述了我正在寻找的内容。