By default, only dictionary objects can be serialized in Django JSON-encoded response. Before ECMASCript 5, serializing non-dictionary objects
could lead to security vulnerabilities. Since most modern browsers implement ECMAScript 5, this vector of attack is no longer a threat and it is
possible to serialize non-dictionary objects by setting the safe flag to False. However, if this flag is not set, a
TypeError will be thrown by the serializer.
Despite this possibility, it is still recommended to serialize dictionary objects, as an API based on dict is generally more
extensible and easier to maintain.