gpt4 book ai didi

c# - 无法返回特定的嵌套类属性

转载 作者:行者123 更新时间:2023-11-30 23:26:57 25 4
gpt4 key购买 nike

我制作了一个用于反序列化 JSON 的类(我正在使用 JSON.net),这是结构:

public class User
{
public string Name { get; set; }
public string Surname { get; set;}
}

public class RootObject
{
public List<User> Users { get; set; }
}

我这样反序列化 JSON:

var obj = JsonConvert.DeserializeObject<RootObject>(responseText);

现在,如果我想返回所有 JSON,我只需执行以下操作:return obj.Users; 但我如何才能返回类 User 的特定属性?特别是 Name 属性。我试过这个:

return obj.Users.name // user list does not contain any name property

我也尝试过使用 LINQ:

obj.Select(c => c.Name).Single();

但我不能使用 Select 因为我需要将 obj 声明为:

var obj = JsonConvert.DeserializeObject<List<RootObject>>(responseText);

如果我返回 obj.user; 我可以使用 LINQ 并访问名称。但是如何在返回响应的方法中做到这一点呢?

最佳答案

添加对类的引用

 using System.Linq;

因为 user 是 List 类型,所以你可以在其中应用 lambda 表达式。不要使用 Single 如果 user 中有多个记录,它将失败,请改用 FirstOrDefault。它适用于零个或多个元素

var obj = JsonConvert.DeserializeObject<RootObject>(responseText);
string name = obj.user.Select(p=> p.name).FirstOrDefault();
string surname = obj.user.Select(p=> p.surname).FirstOrDefault();

关于c# - 无法返回特定的嵌套类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36714663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com