I have a json-file that has the following format:
{"0":{"Height":190,"Left":1640,"Top":170,"Width":600},"1":{"Height":52,"Left":2250,"Top":306,"Width":112},"10":{"Height":38,"Left":2011,"Top":794,"Width":378},"100":{"Height":45,"Left":192,"Top":3318,"Width":131},"101":{"Height":42,"Left":1211,"Top":3367,"Width":1216}}
The special case in this json-file:
- entries are not sorted with ascending numbers (this is not an issue for me)
- entries are numbered from
"1","2","3", ... and especially not named correctly like a json list.
I have a class Geometry that looks like the following:
public class Geometry
{
public int Height { get; set; }
public int Width { get; set; }
public int Left { get; set; }
public int Top { get; set; }
}
Is it possible to parse the json-file by ignoring the "enumeration" "1", "2", "3", and so on and just considers the content of each such node (that translates to class Geometry)?
As output I want an object List<Geometry>.
How can I achieve this?
What the JSON represents is effectively a
Dictionary<string, Geometry>- or if you're happy for the keys to be parsed, aDictionary<int, Geometry>. I'd suggest parsing it as that, and then constructing a list from the result. If you don't care about the keys or the order at all, I'd just use:If you want to use the value of the keys for ordering, you could write:
(I'd expect broadly the same code to work for all JSON libraries.)