Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从JSON数组中提取少量值_C#_Asp.net_Arrays_Json_Desire2learn - Fatal编程技术网

C# 从JSON数组中提取少量值

C# 从JSON数组中提取少量值,c#,asp.net,arrays,json,desire2learn,C#,Asp.net,Arrays,Json,Desire2learn,我面临的问题是,对于我在JSON中要求的值,我得到了0 我最近问了一个问题,关于如何从来自API的JSON数组响应中获取特定值 现在,我有一个来自不同路由的新JSON响应,其中我想要一个值,它的名为EntityId,它在实体块中的位置请参阅代码了解更多详细信息,我想从这个响应中获取它,并将它们放在一个列表或数组中,因为它告诉我谁在D2L中提交了分配 更新-在收到用户的评论后,我使用JSON to C#工具创建了包含所有值的完整类,但仍然得到了0,0,0,0的值 现在我得到的是0,0,0,0的值,

我面临的问题是,对于我在JSON中要求的值,我得到了0

我最近问了一个问题,关于如何从来自API的JSON数组响应中获取特定值

现在,我有一个来自不同路由的新JSON响应,其中我想要一个值,它的名为EntityId,它在实体块中的位置请参阅代码了解更多详细信息,我想从这个响应中获取它,并将它们放在一个列表或数组中,因为它告诉我谁在D2L中提交了分配

更新-在收到用户的评论后,我使用JSON to C#工具创建了包含所有值的完整类,但仍然得到了0,0,0,0的值

现在我得到的是0,0,0,0的值,而不是实际值,如果可能的话,我想抓住实体上的整个块

JSON

[
{
“实体”:{
“DisplayName”:“FullName”,
“实体ID”:123,
“EntityType”:“用户”,
“活动”:真
},
“地位”:1,
“反馈”:空,
“意见书”:[
{
“Id”:27,
“提交人”:{
“标识符”:“123”,
“显示名称”:“全名”
},
“提交日期”:“2019-08-01T15:25:04.130Z”,
“评论”:{
“文本”:“,
“Html”:”
},
“文件”:[
{
“IsRead”:错误,
“IsFlagged”:false,
“IsDeleted”:错误,
“文件ID”:1245,
“文件名”:“1.2.10.png”,
“尺寸”:144407
},
{
“IsRead”:错误,
“IsFlagged”:false,
“IsDeleted”:错误,
“文件ID”:292,
“文件名”:“1.3.8.png”,
“大小”:127869
}
]
}
],
“竣工日期”:“2019-08-01T15:25:04.130Z”
},
{
“实体”:{
“DisplayName”:“FullName”,
“实体ID”:123,
“EntityType”:“用户”,
“活动”:真
},
“地位”:1,
“反馈”:空,
“意见书”:[
{
“Id”:41,
“提交人”:{
“标识符”:“123”,
“显示名称”:“全名”
},
“提交日期”:“2019-08-03T03:31:43.807Z”,
“评论”:{
“文本”:“\nAlex”,
“Html”:“

\nAlex

” }, “文件”:[ { “IsRead”:错误, “IsFlagged”:false, “IsDeleted”:错误, “文件ID”:313, “文件名”:“捕获1.2.10 Questions.PNG”, “尺寸”:97722 } ] } ], “竣工日期”:“2019-08-03T03:31:43.807Z” } ]
课程:

public class Entity
{
    public string DisplayName { get; set; }
    public int EntityId { get; set; }
    public string EntityType { get; set; }
    public bool Active { get; set; }
}

public class SubmittedBy
{
    public string Identifier { get; set; }
    public string DisplayName { get; set; }
}

public class Comment
{
    public string Text { get; set; }
    public string Html { get; set; }
}

public class File
{
    public bool IsRead { get; set; }
    public bool IsFlagged { get; set; }
    public bool IsDeleted { get; set; }
    public int FileId { get; set; }
    public string FileName { get; set; }
    public int Size { get; set; }
}

public class Submission
{
    public int Id { get; set; }
    public SubmittedBy SubmittedBy { get; set; }
    public DateTime SubmissionDate { get; set; }
    public Comment Comment { get; set; }
    public IList<File> Files { get; set; }
}

public class Example
{
    public Entity Entity { get; set; }
    public int Status { get; set; }
    public object Feedback { get; set; }
    public IList<Submission> Submissions { get; set; }
    public DateTime CompletionDate { get; set; }
}
公共类实体
{
公共字符串DisplayName{get;set;}
public int EntityId{get;set;}
公共字符串EntityType{get;set;}
公共bool活动{get;set;}
}
公共类提交人
{
公共字符串标识符{get;set;}
公共字符串DisplayName{get;set;}
}
公开课评论
{
公共字符串文本{get;set;}
公共字符串Html{get;set;}
}
公共类文件
{
公共bool IsRead{get;set;}
public bool被标记为{get;set;}
公共布尔被删除{get;set;}
public int FileId{get;set;}
公共字符串文件名{get;set;}
公共整数大小{get;set;}
}
公开课提交
{
公共int Id{get;set;}
public SubmittedBy SubmittedBy{get;set;}
公共日期时间提交日期{get;set;}
公共注释注释{get;set;}
公共IList文件{get;set;}
}
公开课范例
{
公共实体{get;set;}
公共int状态{get;set;}
公共对象反馈{get;set;}
公共IList提交{get;set;}
公共日期时间完成日期{get;set;}
}
代码:

var request = new RestRequest(string.Format(Link));
request.Method = Method.GET;

authenticator.Authenticate(client, request);

var response = client.Execute(request);

var thisasa = JsonConvert.DeserializeObject<List<Example>> 
   (response.Content).Select(
    o => o.Identifier).ToList();
var请求=新的重新请求(string.Format(Link));
request.Method=Method.GET;
身份验证(客户端,请求);
var response=client.Execute(请求);
var thisasa=JsonConvert.DeserializeObject
(response.Content)。选择(
o=>o.Identifier).ToList();

问题中显示的
示例
数据模型已经可以用于成功地反序列化所显示的JSON。剩下的就是通过一个:

演示小提琴2


(另一方面,由于您的
示例
类对应于文档对象,为了清楚起见,您可能需要将您的类型重命名为
EntityDropbox

您的问题中显示的
示例
数据模型已经可以用于成功地反序列化显示的JSON。剩下的就是通过一个:

演示小提琴2


(顺便说一句,由于您的
示例
类对应于文档对象,为了清楚起见,您可能需要将您的类型重命名为
EntityDropbox

您的反序列化代码似乎工作得很好,不确定您的问题出在哪里。但是
.Select(o=>o.Identifier)
不会编译,您需要做的是
.Select(o=>o.Entity.EntityId)
。演示:。这回答了你的问题吗?@dbc是的,这就是问题所在,非常感谢@dbc如果你发布一个答案,我将能够为你的答案评分,因此我认为你应该发布一个答案,以便我可以标记为已接受,为你的所有帮助评分是公平的你的反序列化代码似乎工作正常,不确定你的问题是什么。但是
.Select(o=>o.Identifier)
不会编译,您需要做的是
.Select(o=>o.Entity.EntityId)
。演示:。这回答了你的问题吗?@dbc是的,这就是问题所在,非常感谢@dbc如果你发布一个答案,我将能够给你的答案,所以我认为你应该发布一个答案,这样我可以标记为接受,这是公平的,给你所有的帮助信用
var request = new RestRequest(string.Format(Link));
request.Method = Method.GET;

authenticator.Authenticate(client, request);

var response = client.Execute(request);

var thisasa = JsonConvert.DeserializeObject<List<Example>> 
   (response.Content).Select(
    o => o.Identifier).ToList();
var thisasa = JsonConvert.DeserializeObject<List<Example>>(response.Content)
    .Select(o => o.Entity.EntityId)
    .ToList();
public class Entity
{
    public int EntityId { get; set; }
}

public class Example
{
    public Entity Entity { get; set; }
}