code: public static function encode($value, $options = 320)
      {
          $expressions = [];
          $value = static::processData($value, $expressions, uniqid('', true));
          set_error_handler(function () {
              static::handleJsonError(JSON_ERROR_SYNTAX);
          }, E_WARNING);
          $json = json_encode($value, $options);
          restore_error_handler();
          static::handleJsonError(json_last_error());
  
          return $expressions === [] ? $json : strtr($json, $expressions);
      }
docs: Encodes the given value into a JSON string.
  
  The method enhances `json_encode()` by supporting JavaScript expressions.
  In particular, the method will not encode a JavaScript expression that is
  represented in terms of a [[JsExpression]] object.
  
  Note that data encoded as JSON must be UTF-8 encoded according to the JSON specification.
  You must ensure strings passed to this method have proper encoding before passing them.
  
  @param mixed $value the data to be encoded.
  @param int $options the encoding options. For more details please refer to
  <https://secure.php.net/manual/en/function.json-encode.php>. Default is `JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE`.
  @return string the encoding result.
  @throws InvalidArgumentException if there is any encoding error.