我是C#和.Net的新手,我正努力了解我遇到的这个问题。我觉得我所拥有的已经足够,但不确定自己。所以,如果有人可以只看一下我下面的代码并告诉我要纠正的话,什么是错的。谢谢
这是我的模特班
namespace github_project.Models
{
public class GithubItem
{
public int Id { get; set; }
public string UserName { get; set; }
public string FullName { get; set; }
public string City { get; set; }
public string ProjectName { get; set; }
public string Commits { get; set; }
public double Rating { get; set; }
public string AvatarUrl { get; set; }
}
}
这是我的数据库上下文
namespace github_project.Database
{
public class GithubContext : DbContext
{
public DbSet<GithubItem> Github { get; set; }
public GithubContext(DbContextOptions<GithubContext> options) : base(options)
{
}
public GithubItem ItemsList()
{
List<GithubItem> build = Build();
GithubItem itemsList = JsonConvert.DeserializeObject<GithubItem>(build);
return itemsList;
}
public List<GithubItem> Build()
{
var getData = GetGithubData();
return System.Text.Json.JsonSerializer.Deserialize<List<GithubItem>>(getData);
}
private string GetGithubData()
{
string username = "**test**";
var url = "https://api.github.com/users/" + username + "/repos?page=1";
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/json";
request.UserAgent = "TestApp";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
return reader.ReadToEnd();
}
}
public List<GithubItem> getGithub() => Github.Local.ToList<GithubItem>();
}
}
终于这是我的控制器
[HttpGet("/github")]
public GithubItem GetAll()
{
return _context.ItemsList();
}
我正在向github请求,以获取所有数据并在我的请求中使用它。我在这里通过以下方法将Collection.List转换为String:
public GithubItem ItemsList()
{
List<GithubItem> build = Build();
GithubItem itemsList = JsonConvert.DeserializeObject<GithubItem>(**build**);
return itemsList;
}
有人可以帮我,有人可以告诉我这是怎么回事吗???谢谢
您不能反序列化对象或将对象从转换List<GithubItem>
为single GithubItem
。那就是你在做什么。
如您所见,您具有build
:
List<GithubItem> build = Build();
此build
变量是一个List<GithubItem
。现在,您想使用JsonConvert的反序列化将其转换为单个吗?
无论您的要求是什么,您都可以使用以下代码获得一条记录:
GithubItem itemsList = build.FirstOrDefault();
那会很好的。但这只是一个例子,因为我不确定您的要求是什么。如果需要过滤记录,还可以在FirstOrDefault上传递参数:
GithubItem itemsList = build.FirstOrDefault(x => x.UserName == "John");
那也可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句