code: func (re Unknown) MarshalJSON() ([]byte, error) {
  	if re.RawJSON == nil {
  		return []byte("null"), nil
  	}
  	return re.RawJSON, nil
  }
docs: // Marshal may get called on pointers or values, so implement MarshalJSON on value.
  // http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go