code: func DecodeObject(data []byte) (map[string]interface{}, error) {
  	d := NewDecoder(data)
  	if c := d.skipSpaces(); c != '{' {
  		return nil, d.error(c, "looking for beginning of object")
  	}
  	val, err := d.object()
  	if err != nil {
  		return nil, err
  	}
  	if c := d.skipSpaces(); d.pos < d.end {
  		return nil, d.error(c, "after top-level value")
  	}
  	return val, nil
  }
docs: // DecodeObject is the same as Decode but it returns map[string]interface{}.
  // You should use it to parse JSON objects.