code: def json_string(self):
          
          def visit_children(node):
              """ Recursively visit the fragments_tree """
              output_fragments = []
              for child in node.children_not_empty:
                  fragment = child.value
                  text = fragment.text_fragment
                  output_fragments.append({
                      "id": text.identifier,
                      "language": text.language,
                      "lines": text.lines,
                      "begin": gf.time_to_ssmmm(fragment.begin),
                      "end": gf.time_to_ssmmm(fragment.end),
                      "children": visit_children(child)
                  })
              return output_fragments
          output_fragments = visit_children(self.fragments_tree)
          return gf.safe_unicode(
              json.dumps({"fragments": output_fragments}, indent=1, sort_keys=True)
          )
docs: Return a JSON representation of the sync map.
  
          :rtype: string
  
          .. versionadded:: 1.3.1