JsonSerializer#

class xsdata.formats.dataclass.serializers.JsonSerializer(config=<factory>, context=<factory>, dict_factory=<class 'dict'>, dump_factory=<function dump>)[source]#

Json serializer for data classes.

Parameters:
  • config (SerializerConfig) – The serializer config instance

  • context (XmlContext) – The models context instance

  • dict_factory (Callable) – Dictionary factory

  • dump_factory (Callable) – Json dump factory e.g. json.dump

dict_factory#

alias of dict

dump_factory(fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)#

Serialize obj as a JSON formatted stream to fp (a .write()-supporting file-like object).

If skipkeys is true then dict keys that are not basic types (str, int, float, bool, None) will be skipped instead of raising a TypeError.

If ensure_ascii is false, then the strings written to fp can contain non-ASCII characters if they appear in strings contained in obj. Otherwise, all such characters are escaped in JSON strings.

If check_circular is false, then the circular reference check for container types will be skipped and a circular reference will result in an OverflowError (or worse).

If allow_nan is false, then it will be a ValueError to serialize out of range float values (nan, inf, -inf) in strict compliance of the JSON specification, instead of using the JavaScript equivalents (NaN, Infinity, -Infinity).

If indent is a non-negative integer, then JSON array elements and object members will be pretty-printed with that indent level. An indent level of 0 will only insert newlines. None is the most compact representation.

If specified, separators should be an (item_separator, key_separator) tuple. The default is (', ', ': ') if indent is None and (',', ': ') otherwise. To get the most compact JSON representation, you should specify (',', ':') to eliminate whitespace.

default(obj) is a function that should return a serializable version of obj or raise TypeError. The default simply raises TypeError.

If sort_keys is true (default: False), then the output of dictionaries will be sorted by key.

To use a custom JSONEncoder subclass (e.g. one that overrides the .default() method to serialize additional types), specify it with the cls kwarg; otherwise JSONEncoder is used.

render(obj)[source]#

Serialize the input model instance to json string.

Parameters:

obj (Any) – The input model instance

Return type:

str

Returns:

The serialized json string output.

write(out, obj)[source]#

Serialize the given object to the output text stream.

Parameters:
  • out (TextIO) – The output text stream

  • obj (Any) – The input model instance to serialize

convert(value, var=None)[source]#

Convert a value to json serializable object.

Parameters:
Return type:

Any

Returns:

The converted json serializable value.

next_value(obj)[source]#

Fetch the next value of a model instance to convert.

Parameters:

obj (Any) – The input model instance

Yields:

An iterator of field name and value tuples.

Return type:

Iterator[Tuple[str, Any]]

__eq__(other)#

Return self==value.

__hash__ = None#