Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Как распарсить объект такого вида на c#?

#c_sharp #json #jsonnet


var tree = {
   left: {
       left: "Первое предложение из произвольной строки",
       right: {
           left: "Другое произвольное предложение",
           right: "Еще одно следующее предложение, но не очень длинное"
       }
   },
   right: {
       left: {
           left: {
               left: "Еще одно не очень длинное предложение",
               right: ""
           }, 
           right: {
               left: "",
               right: "Еще одно не очень длинное предложение"
           }
       },
       right: {
           left: {
               left: "Предложение",
               right: "Еще одно следующее предложение, но не очень длинное"
           },
           right: {
               left: "Другое произвольное предложение",
               right: {
                   left: "Два слова",
                   right: "Еще одно следующее предложение, но не очень длинное"
               }
           }
       }
   }
}

    


Ответы

Ответ 1



Берем ваш JSON string json = @"{ left: { left: ""Первое предложение из произвольной строки"", right: { left: ""Другое произвольное предложение"", right: ""Еще одно следующее предложение, но не очень длинное"" } }, right: { left: { left: { left: ""Еще одно не очень длинное предложение"", right: """" }, right: { left: """", right: ""Еще одно не очень длинное предложение"" } }, right: { left: { left: ""Предложение"", right: ""Еще одно следующее предложение, но не очень длинное"" }, right: { left: ""Другое произвольное предложение"", right: { left: ""Два слова"", right: ""Еще одно следующее предложение, но не очень длинное"" } } } } }"; Генерируем классы для него тут http://json2csharp.com/ (также в студии можно использовать специальную вставку Paste Special. Для этого надо предвариетльно json скопировать в буфер обмена.) public class Right { public string left { get; set; } public string right { get; set; } } public class Left { public string left { get; set; } public Right right { get; set; } } public class Left3 { public string left { get; set; } public string right { get; set; } } public class Right3 { public string left { get; set; } public string right { get; set; } } public class Left2 { public Left3 left { get; set; } public Right3 right { get; set; } } public class Left4 { public string left { get; set; } public string right { get; set; } } public class Right6 { public string left { get; set; } public string right { get; set; } } public class Right5 { public string left { get; set; } public Right6 right { get; set; } } public class Right4 { public Left4 left { get; set; } public Right5 right { get; set; } } public class Right2 { public Left2 left { get; set; } public Right4 right { get; set; } } public class RootObject { public Left left { get; set; } public Right2 right { get; set; } } Для десериализации я использую библитеку https://www.newtonsoft.com/json - её можно скачать через nuget (https://www.nuget.org/packages/Newtonsoft.Json/). После подключения библиотеки, десериализуем JSON в объект var myObject = JsonConvert.DeserializeObject(json); Готово.

Комментариев нет:

Отправить комментарий