class Appsignal::Utils::JSON
@api private
def encode_utf8(value)
def encode_utf8(value) value.encode( "utf-8".freeze, :invalid => :replace, :undef => :replace ) end
def generate(body)
def generate(body) ::JSON.generate(jsonify(body)) end
def jsonify(value)
def jsonify(value) case value when String encode_utf8(value) when Numeric, NilClass, TrueClass, FalseClass value when Hash value.each_with_object({}) do |(k, v), hash| hash[jsonify(k)] = jsonify(v) end when Array value.map { |v| jsonify(v) } else jsonify(value.to_s) end end