docs: def parse_json(raw_data):
      ''' this version for module return data only '''
  
      orig_data = raw_data
  
      # ignore stuff like tcgetattr spewage or other warnings
      data = filter_leading_non_json_lines(raw_data)
  
      try:
          return json.loads(data)
      except:
          # not JSON, but try "Baby JSON" which allows many of our modules to not
          # require JSON and makes writing modules in bash much simpler
          results = {}
          try:
              tokens = shlex.split(data)
          except:
              print "failed to parse json: "+ data
              raise
  
          for t in tokens:
              if t.find("=") == -1:
                  raise errors.AnsibleError("failed to parse: %s" % orig_data)
              (key,value) = t.split("=", 1)
              if key == 'changed' or 'failed':
                  if value.lower() in [ 'true', '1' ]:
                      value = True
                  elif value.lower() in [ 'false', '0' ]:
                      value = False
              if key == 'rc':
                  value = int(value)
              results[key] = value
          if len(results.keys()) == 0:
              return { "failed" : True, "parsed" : False, "msg" : orig_data }
          return results