Source code for microesb.transformer
# ]*[ --------------------------------------------------------------------- ]*[
# . Micro ESB transformer Python Module .
# ]*[ --------------------------------------------------------------------- ]*[
# . .
# . Copyright Claus Prüfer 2016-2026 .
# . .
# . .
# ]*[ --------------------------------------------------------------------- ]*[
import json
[docs]class JSONTransformer():
""" JSON transformer class.
Provides JSON transformation functionality for class hierarchies.
"""
[docs] def __init__(self):
"""
:ivar dict _json_dict: recursive internal properties processing dict
"""
self._json_dict = {}
[docs] def json_transform(self):
""" json_transform() method.
Recursively generate _json_dict for complete object hierarchy.
Iterates through all elements in the hierarchy and calls set_json_dict()
on each to populate their json_dict representation.
"""
for element in self.iterate():
element.set_json_dict()
self.logger.debug(
'JSON:{} properties:{}'.format(
element.json_dict,
element._SYSProperties
)
)
@property
def json(self):
""" json() method.
:return: json.dumps(self._json_dict)
:rtype: str (json dump)
Decorated with @property so direct property access possible
"""
return json.dumps(self._json_dict)
@property
def json_dict(self):
""" json_dict() method.
:return: self._json_dict
:rtype: dict
Decorated with @property so direct property access possible
"""
return self._json_dict