Skip to main content
 首页 » 编程设计

c#之将 JSON 数据添加到通用集合

2024年02月05日3152php

我对 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;