我有我的模型类,如下所示:
public class Info
{
public string status { get; set; }
}
public class MyItem
{
public MyItem()
{
info = new List<Info>();
}
public List<Info> info { get; set; }
public string name { get; set; }
public string address { get; set; }
public int? age { get; set; }
}
public class Root
{
public List<MyItem> data { get; set; }
}
我正在使用 RestSharp 获取 json 文件,然后将其反序列化为我的模型。然后我想在我的信息列表属性中分配新项目。但我在info
列表中没有任何值:
{
"data": [
{
"info": [],
"name": "John Doe",
"address": "2541 Cheshire Road",
"age": null
},
.
.
.
到目前为止,这是我的代码:
var client = new RestClient("XXX");
client.UseNewtonsoftJson();
var request = new RestRequest("XXX");
var response = client.Execute(request);
var result = JsonConvert.DeserializeObject<Root>(response.Content);
var foo = new MyItem();
foreach (var item in result.data)
{
var total = 0;
total = item.GetType()
.GetProperties()
.Select(x => x.GetValue(item, null))
.Count(v => v is null || (v is string a &&
string.IsNullOrWhiteSpace(a)));
foo.info.Add(new Info() { status = "test" }); // add to list here
}
return Ok(result);
我不知道我是否犯了错误,但我认为到目前为止我是对的。我读过一些类似的问题,但我仍然不知道如何解决这个问题。
您将一个元素添加到 的新实例MyItem
,而不是添加到 中的任何实例result
。foo
完全摆脱,只需将其添加到以下元素中result
:
var result = JsonConvert.DeserializeObject<Root>(response.Content);
foreach (var item in result.data)
{
var total = 0;
total = item.GetType()
.GetProperties()
.Select(x => x.GetValue(item, null))
.Count(v => v is null || (v is string a &&
string.IsNullOrWhiteSpace(a)));
// Add to "item", not to "foo"
item.info.Add(new Info() { status = "test" });
}
return Ok(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句