code: func (expr *Expr) UnmarshalJSON(bs []byte) error {
  	v := map[string]interface{}{}
  	if err := util.UnmarshalJSON(bs, &v); err != nil {
  		return err
  	}
  	return unmarshalExpr(expr, v)
  }
docs: // UnmarshalJSON parses the byte array and stores the result in expr.