使用C#或VB将大型嵌套JSON字符串循环到数据表中

时间:2018-04-28 13:35:04

标签: c# asp.net json vb.net json.net

我有一个大的嵌套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": []
      }
    ]

1 个答案:

答案 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 }
        },
    };
}