我对 C# 还很陌生,至少在涉及到这样的事情时是这样,所以对于我的代码量太少,我深表歉意。
我有一个名为 Project.cs 的类,需要用于保存我从第 3 方 API 获取的数据对象。
这是类:
//项目.cs
public sealed class Project
{
public String Id { get; set; }
public String Title { get; set; }
public String Url { get; set; }
}
您在下面看到的方法应该从第 3 方 API 获取数据 (JSON)。
此 API 以 JSON 格式返回项目列表。
幸运的是,我只需要从 API 中选择几个属性(Id、Title 和 URL)。
不幸的是,我不知道如何从 JSON 中挑选那些特定的属性并将它们转换为 Project 类型的集合。
这是我目前所拥有的。我知道它很稀疏。
//ProjectSearch.cs
public IEnumerable<Project> GetProjects(String catId)
{
//Get the data from the API
WebRequest request = WebRequest.Create("http://research.a.edu/api/Catalogs('123')");
request.ContentType = "application/json; charset=utf-8";
WebResponse response = request.GetResponse();
//put each object found in the API into a Project object
var project = new Project();
}
所以,现在,我被困住了。我不知道如何从 API 中获取所有对象并将它们放入 Project 类型的集合中。我需要一个循环吗?还是有其他类型的做事方式?
来自 API 的示例 JSON:
{"odata.metadata":"http://research.a.edu/api/Catalogs/
$metadata#Catalogs /@Element", "odata.id":"http://research.a.edu/api/Catalogs
('123')",
"Id":"12345", "ParentID":"xxxx","Name":"Test1","Created":"1/1/2015","Modified":"2/1/2015","Deleted","0","URL":"http://yoursite/1",
('123')",
"Id":"7897", "ParentID":"xxxx","Name":"Test2","Created":"4/1/2015","Modified":"7/1/2015","Deleted","1","URL":"http://yoursite/2",
('123')",
"Id":"65335", "ParentID":"xxxx","Name":"Test3","Created":"7/1/2015","Modified":"9/1/2015","Deleted","0","URL":"http://yoursite/3"
}
我迷路了。
如果有人能给我提供线索,我将不胜感激。
谢谢!
请您参考如下方法:
您应该查看最流行的 .NET JSON 库:Newtonsoft JSON
使用非常简单。此示例取自以下站点:
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie m = JsonConvert.DeserializeObject<Movie>(json);
string name = m.Name;
