问题:
将JSON从服务器上的.JSON文件中提取到代码中,以便将其反序列化为.NET对象的最佳方法是什么?
详细信息:
我在VS2013 ExpressMVC项目中保存了一个名为"backback.json"的文件。该文件不是由我的项目创建的-它是通过执行"添加现有项"添加到项目中的
"backlog.json"是json对象的集合。我需要从集合中提取这些对象,这样我就可以将这些对象添加到我的项目使用和操作的数据库中。
该项目使用.NET Framework 4.5,我已经使用NuGet包管理器将NewtonSoft的Json.NET添加到该项目中。一旦我将"backback.json"中的对象放入代码中,我将使用json.NET通过C#对对象进行反序列化和操作。
例如:
public void AddJSON(EFWorkOrderModelContainer WorkOrderContainer)
{
// Pull backlog.json from C:ProjectApp_Databacklog.json
// De-serialize and parse
}
不能执行string myjson = File.ReadAllText("~/App_Data/backlog.json");
,因为File
类不知道如何从应用程序根相对路径转换。您可以执行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:ProjectApp_Databacklog.json");
,因为这取决于你在网络服务器中放置网站的位置,这是个坏主意。
是的,MSDN现在已经关闭,所以您不能用它来查找File
类的名称空间。但在Visual Studio中,如果只键入File
,则可以使用Intellisense通过右键单击File
来自动导入命名空间。
我不会将自己的答案标记为"已回答",但Newtonsoft.com的网站上实际上描述了类似的处理方法。单击此处查看示例。。。它准确地描述了我在寻找什么。