【发布时间】:2015-09-28 14:13:26
【问题描述】:
至少在涉及到这样的事情时,我对 C# 还很陌生,所以对于我拥有的少量代码,我深表歉意。
我有一个名为 Project.cs 的类,需要使用它来保存我从 3rd 方 API 获得的数据对象。
这是课程:
//项目.cs
public sealed class Project
{
public String Id { get; set; }
public String Title { get; set; }
public String Url { get; set; }
}
您在下面看到的方法应该是从 3rd 方 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"
}
我迷路了。
如果有人能告诉我,我将不胜感激。
谢谢!
【问题讨论】:
-
JSON 数据是什么样的?
-
你在谷歌上搜索过 JSON 反序列化器吗?
-
将JSON解析为代表完整数据的类还是解析为动态然后复制你需要的数据?
-
你能添加一个json示例吗? @999cm999