我一直在使用NewtonSoft JSON转换库来解析并将JSON字符串转换为C#对象。但是现在我遇到了一个非常尴尬的JSON字符串,由于无法从该JSON字符串中创建C#类,因此无法将其转换为C#对象。
这是JSON字符串
{ "1": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:40" }, "2": { "fajr": "04:15", "sunrise": "05:42", "zuhr": "12:30", "asr": "15:53", "maghrib": "19:18", "isha": "20:41" } }
解析此JSON字符串所需的C#类应如下所示:
public class 1 { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } } public class 2 { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } }
但这不是真正的C#类,因为我们知道类名称不能以数字开头。
如果有人可以建议如何解析这种类型的json字符串,那将真的很棒。
您可以反序列化为字典。
public class Item { public string fajr { get; set; } public string sunrise { get; set; } public string zuhr { get; set; } public string asr { get; set; } public string maghrib { get; set; } public string isha { get; set; } }
var dict = JsonConvert.DeserializeObject<Dictionary<string, Item>>(json);