docs: def update_json_analysis(analysis, j):
      """
      Step through the items in a piece of json, and update an analysis dict
      with the values found.
      """
      def _analyze_list(l, parent=""):
          for v in l:
              if isinstance(v, (dict, CaseInsensitiveDict)):
                  _analyze_json(v, parent=parent)
              elif isinstance(v, list):
                  _analyze_list(v, parent=parent+"[]")
              else:
                  analysis[parent].add(v)
  
  
      def _analyze_json(d, parent=""):
          for k, v in d.iteritems():
              if parent:
                  path = ".".join([parent, k])
              else:
                  path = k
              if isinstance(v, (dict, CaseInsensitiveDict)):
                  _analyze_json(v, parent=path)
              elif isinstance(v, list):
                  _analyze_list(v, parent=path+"[]")
              else:
                  analysis[path].add(v)
  
      if isinstance(j, list):
          _analyze_list(j)
      if isinstance(j, (dict, CaseInsensitiveDict)):
          _analyze_json(j)