我有一个大的嵌套JSON字符串(父/子)。我需要能够在嵌套后循环遍历它。我尝试了各种参考regarindg newtonsoft但我无法让它工作。我确信它必须简单,但我无法解决。
我创建了以下对象: -
Public Class MenuObject
Public Property data_tagname As String
Public Property data_title As String
Public Property data_menuid As String
Public Property data_parentid As String
Public Property data_cmsid As String
Public Property data_enabled As String
Public Property data_isparent As String
Public Property subLevel As List(Of Object)
End Class
当我尝试使用以下内容时: -
Dim data = JsonConvert.DeserializeObject(Of MenuObject)(strJson)
我收到以下错误: -
Message = 无法将当前JSON数组(例如[1,2,3])反序列化为类型“MenuObject”,因为该类型需要一个JSON对象(例如{“name”:“value”})来反序列化正确。 要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”})或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList),例如List从JSON数组反序列化。 JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化。
这是JSON: -
[
{
"data_tagname": "LI",
"data_title": "Who We Are\n",
"data_menuid": "1",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Our Executive Team2\n",
"data_menuid": "13",
"data_parentid": "10",
"data_cmsid": "6",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "About Us\n",
"data_menuid": "7",
"data_parentid": "1",
"data_cmsid": "2",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Hospice Heroes\n",
"data_menuid": "8",
"data_parentid": "1",
"data_cmsid": "4",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our History\n",
"data_menuid": "9",
"data_parentid": "1",
"data_cmsid": "72",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our People\n",
"data_menuid": "10",
"data_parentid": "1",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "How We're Inspected\n",
"data_menuid": "16",
"data_parentid": "12",
"data_cmsid": "10",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our Trustees\n",
"data_menuid": "14",
"data_parentid": "10",
"data_cmsid": "7",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Patrons and Celebrity Support\n",
"data_menuid": "15",
"data_parentid": "10",
"data_cmsid": "8",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "How We're Funded\n",
"data_menuid": "11",
"data_parentid": "1",
"data_cmsid": "9",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Governance\n",
"data_menuid": "12",
"data_parentid": "1",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "How to Submit Feedback\n",
"data_menuid": "17",
"data_parentid": "12",
"data_cmsid": "11",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Give With Confidence\n",
"data_menuid": "18",
"data_parentid": "12",
"data_cmsid": "12",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "What We Do\n",
"data_menuid": "2",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "How To Refer\n",
"data_menuid": "19",
"data_parentid": "2",
"data_cmsid": "36",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Hospice Services\n",
"data_menuid": "20",
"data_parentid": "2",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "In-patient Units\n",
"data_menuid": "26",
"data_parentid": "20",
"data_cmsid": "37",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Home and Community Care\n",
"data_menuid": "27",
"data_parentid": "20",
"data_cmsid": "38",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Sunflower Centre Day Hospice\n",
"data_menuid": "28",
"data_parentid": "20",
"data_cmsid": "39",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Therapy Services\n",
"data_menuid": "29",
"data_parentid": "20",
"data_cmsid": "40",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Support Groups\n",
"data_menuid": "30",
"data_parentid": "20",
"data_cmsid": "46",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Spritual Care\n",
"data_menuid": "31",
"data_parentid": "20",
"data_cmsid": "47",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Sunflower Friends\n",
"data_menuid": "32",
"data_parentid": "20",
"data_cmsid": "48",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Family and Carer Support\n",
"data_menuid": "21",
"data_parentid": "2",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Carers Support\n",
"data_menuid": "33",
"data_parentid": "21",
"data_cmsid": "49",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Quantock House\n",
"data_menuid": "34",
"data_parentid": "21",
"data_cmsid": "50",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Bereavement Support\n",
"data_menuid": "35",
"data_parentid": "21",
"data_cmsid": "51",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Family Support\n",
"data_menuid": "36",
"data_parentid": "21",
"data_cmsid": "52",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Patient, Family and Friends Forum\n",
"data_menuid": "22",
"data_parentid": "2",
"data_cmsid": "53",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Training and Education\n",
"data_menuid": "23",
"data_parentid": "2",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Overview\n",
"data_menuid": "37",
"data_parentid": "23",
"data_cmsid": "54",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our courses\n",
"data_menuid": "38",
"data_parentid": "23",
"data_cmsid": "55",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "The 2018 St. marshes's Lectures\n",
"data_menuid": "39",
"data_parentid": "23",
"data_cmsid": "56",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Fit for Future\n",
"data_menuid": "24",
"data_parentid": "2",
"data_cmsid": "57",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "St. marshes's Hospice Funerals\n",
"data_menuid": "25",
"data_parentid": "2",
"data_cmsid": "58",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Support Us\n",
"data_menuid": "3",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Glitter Run\n",
"data_menuid": "40",
"data_parentid": "3",
"data_cmsid": "89",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Fundraise for Us\n",
"data_menuid": "41",
"data_parentid": "3",
"data_cmsid": "83",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Community Events\n",
"data_menuid": "42",
"data_parentid": "3",
"data_cmsid": "90",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Sponsorship Events\n",
"data_menuid": "43",
"data_parentid": "3",
"data_cmsid": "109",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Skydive for us!\n",
"data_menuid": "44",
"data_parentid": "3",
"data_cmsid": "102",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Free Will Fortnight 5th - 16th March 2018\n",
"data_menuid": "45",
"data_parentid": "3",
"data_cmsid": "95",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "The Great Somerset Ball\n",
"data_menuid": "46",
"data_parentid": "3",
"data_cmsid": "101",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Corporate\n",
"data_menuid": "47",
"data_parentid": "3",
"data_cmsid": "107",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Personal Donations\n",
"data_menuid": "48",
"data_parentid": "3",
"data_cmsid": "118",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Weekly Prize Draw\n",
"data_menuid": "49",
"data_parentid": "3",
"data_cmsid": "92",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Volunteer for us\n",
"data_menuid": "50",
"data_parentid": "3",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Why volunteer for us?\n",
"data_menuid": "51",
"data_parentid": "50",
"data_cmsid": "91",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Volunteer roles\n",
"data_menuid": "52",
"data_parentid": "50",
"data_cmsid": "131",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Work For Us\n",
"data_menuid": "4",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Current Vacancies\n",
"data_menuid": "53",
"data_parentid": "4",
"data_cmsid": "67",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our Approach to Recruitment\n",
"data_menuid": "54",
"data_parentid": "4",
"data_cmsid": "71",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Shop With Us\n",
"data_menuid": "5",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Online Shop\n",
"data_menuid": "55",
"data_parentid": "5",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Store Locator\n",
"data_menuid": "56",
"data_parentid": "5",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Our shops\n",
"data_menuid": "57",
"data_parentid": "5",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Mendip\n",
"data_menuid": "60",
"data_parentid": "57",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Sedgemoor\n",
"data_menuid": "61",
"data_parentid": "57",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "South Somerset\n",
"data_menuid": "62",
"data_parentid": "57",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Taunton Deane\n",
"data_menuid": "63",
"data_parentid": "57",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "West Somerset\n",
"data_menuid": "64",
"data_parentid": "57",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Donating Goods\n",
"data_menuid": "58",
"data_parentid": "5",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Book a Furniture Collection\n",
"data_menuid": "59",
"data_parentid": "5",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "News\n",
"data_menuid": "6",
"data_parentid": "0",
"data_cmsid": "72",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Donate Here\n",
"data_menuid": "65",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "0",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Admin\n",
"data_menuid": "66",
"data_parentid": "0",
"data_cmsid": "0",
"data_enabled": "0",
"data_isparent": "1",
"subLevel": [
{
"data_tagname": "UL",
"data_title": "",
"data_menuid": null,
"data_parentid": null,
"data_cmsid": null,
"data_enabled": null,
"data_isparent": null,
"subLevel": [
{
"data_tagname": "LI",
"data_title": "Log in\n",
"data_menuid": "67",
"data_parentid": "66",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Careers\n",
"data_menuid": "68",
"data_parentid": "66",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
},
{
"data_tagname": "LI",
"data_title": "Contact\n",
"data_menuid": "69",
"data_parentid": "66",
"data_cmsid": "0",
"data_enabled": "1",
"data_isparent": "0",
"subLevel": []
}
]
}
]
},
{
"data_tagname": "LI",
"data_title": "Home\n",
"data_menuid": "70",
"data_parentid": "0",
"data_cmsid": "3",
"data_enabled": "0",
"data_isparent": "0",
"subLevel": []
}
]
答案 0 :(得分:2)
有一个名为https://quicktype.io/的页面,您可以在其中粘贴JSON并生成c#类。
之后,您应该能够将JSON解析为c#对象并枚举您的对象,如:
class Program
{
static void Main()
{
// read the JSON into variable
string json = System.IO.File.ReadAllText("input.json");
// Convert the JSON text into C# object
var welcomes = Welcome.FromJson(json);
foreach (var welcome in welcomes)
{
// Your logic
}
}
}
public partial class SubLevel
{
[JsonProperty("data_tagname")]
public PurpleDataTagname DataTagname { get; set; }
[JsonProperty("data_title")]
public DataTitle DataTitle { get; set; }
[JsonProperty("data_menuid")]
public object DataMenuid { get; set; }
[JsonProperty("data_parentid")]
public object DataParentid { get; set; }
[JsonProperty("data_cmsid")]
public object DataCmsid { get; set; }
[JsonProperty("data_enabled")]
public object DataEnabled { get; set; }
[JsonProperty("data_isparent")]
public object DataIsparent { get; set; }
[JsonProperty("subLevel")]
public Welcome[] SubLevelSubLevel { get; set; }
}
public partial class Welcome
{
[JsonProperty("data_tagname")]
public WelcomeDataTagname DataTagname { get; set; }
[JsonProperty("data_title")]
public string DataTitle { get; set; }
[JsonProperty("data_menuid")]
public string DataMenuid { get; set; }
[JsonProperty("data_parentid")]
public string DataParentid { get; set; }
[JsonProperty("data_cmsid")]
public string DataCmsid { get; set; }
[JsonProperty("data_enabled")]
public string DataEnabled { get; set; }
[JsonProperty("data_isparent")]
public string DataIsparent { get; set; }
[JsonProperty("subLevel")]
public SubLevel[] SubLevel { get; set; }
}
public enum PurpleDataTagname { Ul };
public enum DataTitle { Empty };
public enum WelcomeDataTagname { Li };
public partial class Welcome
{
public static Welcome[] FromJson(string json) => JsonConvert.DeserializeObject<Welcome[]>(json, Converter.Settings);
}
static class PurpleDataTagnameExtensions
{
public static PurpleDataTagname? ValueForString(string str)
{
switch (str)
{
case "UL": return PurpleDataTagname.Ul;
default: return null;
}
}
public static PurpleDataTagname ReadJson(JsonReader reader, JsonSerializer serializer)
{
var str = serializer.Deserialize<string>(reader);
var maybeValue = ValueForString(str);
if (maybeValue.HasValue) return maybeValue.Value;
throw new Exception("Unknown enum case " + str);
}
public static void WriteJson(this PurpleDataTagname value, JsonWriter writer, JsonSerializer serializer)
{
switch (value)
{
case PurpleDataTagname.Ul: serializer.Serialize(writer, "UL"); break;
}
}
}
static class DataTitleExtensions
{
public static DataTitle? ValueForString(string str)
{
switch (str)
{
case "": return DataTitle.Empty;
default: return null;
}
}
public static DataTitle ReadJson(JsonReader reader, JsonSerializer serializer)
{
var str = serializer.Deserialize<string>(reader);
var maybeValue = ValueForString(str);
if (maybeValue.HasValue) return maybeValue.Value;
throw new Exception("Unknown enum case " + str);
}
public static void WriteJson(this DataTitle value, JsonWriter writer, JsonSerializer serializer)
{
switch (value)
{
case DataTitle.Empty: serializer.Serialize(writer, ""); break;
}
}
}
static class WelcomeDataTagnameExtensions
{
public static WelcomeDataTagname? ValueForString(string str)
{
switch (str)
{
case "LI": return WelcomeDataTagname.Li;
default: return null;
}
}
public static WelcomeDataTagname ReadJson(JsonReader reader, JsonSerializer serializer)
{
var str = serializer.Deserialize<string>(reader);
var maybeValue = ValueForString(str);
if (maybeValue.HasValue) return maybeValue.Value;
throw new Exception("Unknown enum case " + str);
}
public static void WriteJson(this WelcomeDataTagname value, JsonWriter writer, JsonSerializer serializer)
{
switch (value)
{
case WelcomeDataTagname.Li: serializer.Serialize(writer, "LI"); break;
}
}
}
public static class Serialize
{
public static string ToJson(this Welcome[] self) => JsonConvert.SerializeObject(self, Converter.Settings);
}
internal class Converter : JsonConverter
{
public override bool CanConvert(Type t) => t == typeof(PurpleDataTagname) || t == typeof(DataTitle) || t == typeof(WelcomeDataTagname) || t == typeof(PurpleDataTagname?) || t == typeof(DataTitle?) || t == typeof(WelcomeDataTagname?);
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
{
if (t == typeof(PurpleDataTagname))
return PurpleDataTagnameExtensions.ReadJson(reader, serializer);
if (t == typeof(DataTitle))
return DataTitleExtensions.ReadJson(reader, serializer);
if (t == typeof(WelcomeDataTagname))
return WelcomeDataTagnameExtensions.ReadJson(reader, serializer);
if (t == typeof(PurpleDataTagname?))
{
if (reader.TokenType == JsonToken.Null) return null;
return PurpleDataTagnameExtensions.ReadJson(reader, serializer);
}
if (t == typeof(DataTitle?))
{
if (reader.TokenType == JsonToken.Null) return null;
return DataTitleExtensions.ReadJson(reader, serializer);
}
if (t == typeof(WelcomeDataTagname?))
{
if (reader.TokenType == JsonToken.Null) return null;
return WelcomeDataTagnameExtensions.ReadJson(reader, serializer);
}
throw new Exception("Unknown type");
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var t = value.GetType();
if (t == typeof(PurpleDataTagname))
{
((PurpleDataTagname)value).WriteJson(writer, serializer);
return;
}
if (t == typeof(DataTitle))
{
((DataTitle)value).WriteJson(writer, serializer);
return;
}
if (t == typeof(WelcomeDataTagname))
{
((WelcomeDataTagname)value).WriteJson(writer, serializer);
return;
}
throw new Exception("Unknown type");
}
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters = {
new Converter(),
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
},
};
}