You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# vim: fileencoding=utf-8
|
|
|
|
#
|
|
|
|
from .base_format import BaseFormat
|
|
|
|
from collections import OrderedDict
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
|
|
class JSONFormat(BaseFormat):
|
|
|
|
def __init__(self, document_text: str, ignore_comments=False,
|
|
|
|
join_before=False):
|
|
|
|
processing_methods = []
|
|
|
|
super().__init__(processing_methods)
|
|
|
|
self._ignore_comments = ignore_comments
|
|
|
|
self._join_before = join_before
|
|
|
|
self._comments_processing = False
|
|
|
|
self._format = 'json'
|
|
|
|
|
|
|
|
if document_text == '':
|
|
|
|
self._document_dictionary = OrderedDict()
|
|
|
|
else:
|
|
|
|
self._text_to_dictionary(document_text)
|
|
|
|
|
|
|
|
def _text_to_dictionary(self, json_file_text):
|
|
|
|
self._document_dictionary = json.loads(json_file_text,
|
|
|
|
object_pairs_hook=OrderedDict)
|
|
|
|
|
|
|
|
def get_document_text(self):
|
|
|
|
json_file_text = json.dumps(self._document_dictionary, indent=4)
|
|
|
|
return json_file_text
|