C# Can';C中的t过滤器JSON#
我正试图通过C# Can';C中的t过滤器JSON#,c#,json,.net,xamarin,.net-core,C#,Json,.net,Xamarin,.net Core,我正试图通过名称过滤连接的id,例如返回连接的id,其中名称等于12345678 我能够得到所有的记录以及id和name的值 但是,我只想对其进行归档,例如,如果名称等于12345678,我怎么可能只获取记录的id?我写了下面的代码(我知道这很愚蠢),它会返回所有记录 代码 public class Alias { public string name { get; set; } } public class Connections { public Alias alias {
名称
过滤连接的id
,例如返回连接的id
,其中名称
等于12345678
我能够得到所有的记录以及id
和name
的值
但是,我只想对其进行归档,例如,如果名称
等于12345678,我怎么可能只获取记录的id
?我写了下面的代码(我知道这很愚蠢),它会返回所有记录
代码
public class Alias
{
public string name { get; set; }
}
public class Connections
{
public Alias alias { get; set; }
public string id { get; set; }
}
public class RootObject
{
public List<Connections> connections { get; set; }
}
HttpClient hTTPClient = new HttpClient();
UserID = "12345678";
Uri getConnections = new Uri(string.Format("http://0.0.0.0:0000/getConnections"));
HttpResponseMessage restponseConnections = await hTTPClient.GetAsync(getConnections);
string contentConnections = await restponseConnections.Content.ReadAsStringAsync();
RootObject obj = JsonConvert.DeserializeObject<RootObject>(contentConnections);
foreach (Connections i in obj.connections)
{
if(!(i.alias.name == UserID))
{
Console.WriteLine(i.id);
}
}
使用LINQ
using System.Linq;
...
var list = obj.connections.Where(c => c.alias.name == "xyz").ToList();
在您的情况下,假设您想要获得1条记录,我建议您使用LINQ
using System.Linq;
//Rest of your code
var recId = obj.connections.Where(c => c.alias.name == "1234567").FirstOrDefault();
API是你的吗?更好的方法是在API端进行过滤。应该是
obj
使用obj.Connections使用.ToList()而不是.ToList()。您是否确实有任何数据具有name=“xyz”
?这将列出数据中的所有“name”值-foreach(obj.Connections中的连接i)控制台。WriteLine(i.alias.name)代码>
using System.Linq;
//Rest of your code
var recId = obj.connections.Where(c => c.alias.name == "1234567").FirstOrDefault();