我导入了一些 JSON 内容并创建了一个类来反序列化它们。
public class CONTENTSFROMSERVER
{
public List<DATA> data { get; set; }
public META meta { get; set; }
public LINKS links { get; set; }
}
public class DATA
{
public string type { get; set; }
public string id { get; set; }
public ATTRIBUTES attributes { get; set; }
}
public class ATTRIBUTES
{
public string field_01 { get; set; }
public string field_02 { get; set; }
public string field_03 { get; set; }
}
...
到目前为止一切顺利(本文中的课程尚未完成,因为缺少的部分对于问题并不重要)。
然后我得到请求的内容响应:
String contents = Resultado.Content.ReadAsStringAsync().Result;
最后我将该内容反序列化到
CONTENTSFROMSERVER
类中:
var Values = JsonConvert.DeserializeObject<CONTENTSFROMSERVER>(contents);
一切正常,最后一部分没有遇到任何问题。
如果有人知道该怎么做,我想要的是用
DataTable
类中的数据填充 ATTRIBUTES
。
类似:
DataTable datatable = Values.data.attributes;
有没有简单的方法呢?或者我是否必须构建数据表,从类中检索值并稍后填充数据表?如果是这样,我该怎么做?
我知道网络上甚至本网站上有很多关于此事的帖子,但我找不到我的具体问题的答案。
您可以使用 LINQ 的
Select
和 CopyToDataTable
来填充数据表。
DataTable dataTable = Values.data
.Select(dataItem => dataItem.attributes)
.Select(attributes =>
{
var row = dataTable.NewRow();
attributes.GetType().GetProperties()
.ToList()
.ForEach(property => row[property.Name] = property.GetValue(attributes));
return row;
})
.CopyToDataTable();