diff --git a/jinja2schema/__init__.py b/jinja2schema/__init__.py index 0aaa35d..4ee0729 100644 --- a/jinja2schema/__init__.py +++ b/jinja2schema/__init__.py @@ -23,5 +23,5 @@ from .config import Config from .core import (parse, infer, infer_from_ast, to_json_schema, - JSONSchemaDraft4Encoder, StringJSONSchemaDraft4Encoder) + JSONSchemaDraft4Encoder, StringJSONSchemaDraft4Encoder,get_variables_dictionary) from .exceptions import InferException, MergeException, InvalidExpression, UnexpectedExpression diff --git a/jinja2schema/core.py b/jinja2schema/core.py index 240b431..2d2fcc3 100644 --- a/jinja2schema/core.py +++ b/jinja2schema/core.py @@ -156,3 +156,18 @@ def to_json_schema(var, jsonschema_encoder=JSONSchemaDraft4Encoder): :return: :class:`dict` """ return jsonschema_encoder().encode(var) + +def get_variables_dictionary(json,keyName=None): + if 'type' not in json: + return { + keyName:'' + } + match json['type']: + case 'object': + dictionary={ + } + for key in json['properties'].keys(): + dictionary[key]=get_variables_dictionary(json['properties'][key],key) if 'type' in json['properties'][key] else '' + return dictionary + case 'array': + return [get_variables_dictionary(json['items'])]