The simple "json.loads" solution would return a list of strings instead. What's the Python code for turning it into a set of enumeration values, and failing if one of the values does not match ?
But that's not a problem with JSON-the-serialization; that just means JSON begs to be extended with a rich schema definition language.
It's kind of like saying "language X sucks because it doesn't have an automatic build tool; use language Y instead". You just need a build tool for X, not a new language.
Comments
Not quite. Let's say your JSON data contains the following attribute:
This field should be represented (in the language) as a set of values from an "access-levels" enumeration.In C#, you'd have the following boilerplate:
In OCaml, it would be: The simple "json.loads" solution would return a list of strings instead. What's the Python code for turning it into a set of enumeration values, and failing if one of the values does not match ?Python doesn't have enumerations, per se. Here's how I'd represent that:
In which case it really doesn't matter if there's junk in access. If I really felt the need to validate the structure, I could do so with: but more realistically, I'd rely on the ORM object to validate against the authoritative source - the database - and key off the errors there.Python 3.4 has enums, if that's what you meant: https://docs.python.org/3/library/enum.html
But that's not a problem with JSON-the-serialization; that just means JSON begs to be extended with a rich schema definition language.
It's kind of like saying "language X sucks because it doesn't have an automatic build tool; use language Y instead". You just need a build tool for X, not a new language.
http://json-schema.org/