{ "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" }]}
如图,其中红线位置是重点,这样的怎么处理
{ "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" }]}
先看运行结果:
示例代码:
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; }
}