c# - 如何使用 C# linq 查询获取 "start"项目值?

标签 c# json list json.net

[{"service":"xxx",
    "processes":
    [
        {
            "name":"tomcat",
            "command":{
                "start": "/server/tomcat01/bin/tomcat01.sh start",
                "stop": "/server/tomcat01/bin/tomcat01.sh stop",
                "restart": "/server/tomcat01/bin/tomcat01.sh restart",
            }       
        }
    ]
}]

如何使用 C# linq 获取起始项值?

最佳答案

给定以下具体类:

public class Command
{
    public string start { get; set; }
    public string stop { get; set; }
    public string restart { get; set; }
}

public class Process
{
    public string name { get; set; }
    public Command command { get; set; }
}

public class Services
{
    public string service { get; set; }
    public List<Process> processes { get; set; }
}

您可以反序列化 json 并检索所有开头的列表:

var json = @"[{""service"":""xxx"", ""processes"": [{""name"":""tomcat"", ""command"":{""start"":""/server/tomcat01/bin/tomcat01.shstart"", ""stop"":""/server/tomcat01/bin/tomcat01.shstop"", ""restart"":""/server/tomcat01/bin/tomcat01.shrestart"", } } ] }]";
var deserialized = JsonConvert.DeserializeObject<List<Services>>(json);
var starts = deserialized.Select(x => x.processes.Select(p => p.command?.start));

关于c# - 如何使用 C# linq 查询获取 "start"项目值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34985411/

相关文章:

Android 传感器 ListView

映射相应元素对的半群的列表实例

java - Java中如何获取返回类型为List接口(interface)的对象?

c# - C#如何更改特定文本框的颜色(如果为空)?

c# - WebApi POST 不包含 ID 字段

asp.net mvc json打开对话框问题

json - 对融合表进行 SQL 查询时出现 403 错误

c# - 用于 Html 帮助程序的 Visual Studio 自动完成

c# - Entity Framework 如何遍历一个太大的集合?

javascript - 是否有比 JSON/BSON 更精简的 Javascript 对象表示法格式?