I'm getting json from file. It could have a different stucture, for examle it could look like this:
{
"root": {
"name": "LWindow",
"children": [{
"name": "Label",
"children": []
},
{
"name": "Edit",
"children": []
},
{
"name": "Label",
"children": []
},
{
"name": "Radio",
"children": []
},
{
"name": "Checkbox",
"children": []
},
{
"name": "Label",
"children": []
},
{
"name": "Label",
"children": []
}
]
}
}
or like this:
{
"root": {
"name": "LWindow",
"children": [{
"name": "FormItem",
"children": [{
"name": "Label",
"children": []
},
{
"name": "Edit",
"children": []
}
]
},
{
"name": "FormItem",
"children": [{
"name": "Label",
"children": []
},
{
"name": "Edit",
"children": []
}
]
},
{
"name": "FormItem",
"children": [{
"name": "Label",
"children": []
},
{
"name": "Radio",
"children": []
}
]
},
{
"name": "Label",
"children": []
},
{
"name": "Button",
"children": []
}
]
}
}
What I need is to deserialize it to c# objects. I've already got a class, that describes json:
public partial class Root
{
public RootElement RootRoot { get; set; }
}
public partial class RootElement
{
public string Name { get; set; }
public List<RootElement> Children { get; set; }
}
But I don't really understand how to extract nested objects from my RootElement because nested objects could have different structure and could have their own nested objects.
I forgot to metion. I've alredy deserialized json to my Root with:
public static T DeserializeJson<T>(String pathToJSON)
{
using (StreamReader file = File.OpenText(pathToJSON))
{
JsonSerializer serializer = new JsonSerializer();
return (T)serializer.Deserialize(file, typeof(T));
}
}