八月没有晚山茶 2023-10-13 15:13 采纳率: 58.3%
浏览 7
已结题

C#怎么把json字符串解析出来

{ "A":"one", "B":"two", "C":0, "D":[{ "time":"7:00", "signal":"a:1,b:2,c:3" },{ "tme":"8:00" , "signal":"a:4,b:5,c:6" }]}

img


如图,其中红线位置是重点,这样的怎么处理

  • 写回答

3条回答 默认 最新

  • 码老头 2023-10-14 09:45
    关注

    先看运行结果:

    img

    示例代码:

    using Newtonsoft.Json;
    
    namespace ConsoleApp1;
    
    static class Program
    {
        static void Main()
        {
            var json = """
                       { "A":"one", "B":"two", "C":0, "D":[{ "time":"7:00", "signal":"a:1,b:2,c:3" },{ "tme":"8:00" , "signal":"a:4,b:5,c:6" }]}
                       """;
    
            var data = JsonConvert.DeserializeObject<Data>(json);
    
            foreach (var signalData in data.D)
            {
                Console.WriteLine("FinalTime: " + signalData.FinalTime);
                Console.WriteLine("Signal A: " + signalData.SignalObject.A);
                Console.WriteLine("Signal B: " + signalData.SignalObject.B);
                Console.WriteLine("Signal C: " + signalData.SignalObject.C);
            }
            Console.ReadKey();
        }
    }
    
    public class Data
    {
        public string A { get; set; }
        public string B { get; set; }
        public int C { get; set; }
        public List<SignalData> D { get; set; }
    }
    
    public class SignalData
    {
        public string Time { get; set; }
        public string Tme { get; set; }
        public string FinalTime => !string.IsNullOrEmpty(Time) ? Time : Tme;
        public string Signal { get; set; }
    
        public Signal SignalObject
        {
            get
            {
                var signal = new Signal();
                var splits = Signal.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                signal.A = int.Parse(splits[0].Split(':')[1]);
                signal.B = int.Parse(splits[1].Split(':')[1]);
                signal.C = int.Parse(splits[2].Split(':')[1]);
                return signal;
            }
        }
    }
    
    public class Signal
    {
        public int A { get; set; }
        public int B { get; set; }
        public int C { get; set; }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表