I find Java pretty nice for handling JSON serialization/deserialization these days. Just define some records for the expected structure, and Jackson's object mapper handles the rest.
record Thing(String name, int size, LocalDate when) {}
The only way I could see this being easier is to forgo type safety completely.These things are just better when you aren't in a nominatively typed language with some pretty crusty assumptions.