module JSON::Ext::Generator::GeneratorMethods::String - JSON implemention for Ruby

# module JSON::Ext::Generator::GeneratorMethods::String

### Public Class Methods

included(modul) click to toggle source

Extends modul with the String::Extend module.

    static VALUE mString_included_s(VALUE self, VALUE modul) {
        VALUE result = rb_funcall(modul, i_extend, 1, mString_Extend);
        return result;
    }

### Public Instance Methods

to_json(*) click to toggle source

This string should be encoded with UTF-8 A call to this method returns a JSON string encoded with UTF16 big endian characters as u????.

    static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
    {
        GENERATE_JSON(string);
    }

to_json_raw(*args) click to toggle source

This method creates a JSON text from the result of a call to #to_json_raw_object of this String.

    static VALUE mString_to_json_raw(int argc, VALUE *argv, VALUE self)
    {
        VALUE obj = mString_to_json_raw_object(self);
        Check_Type(obj, T_HASH);
        return mHash_to_json(argc, argv, obj);
    }

to_json_raw_object() click to toggle source

This method creates a raw object hash, that can be nested into other data structures and will be generated as a raw string. This method should be used, if you want to convert raw strings to JSON instead of UTF-8 strings, e. g. binary data.

    static VALUE mString_to_json_raw_object(VALUE self)
    {
        VALUE ary;
        VALUE result = rb_hash_new();
        rb_hash_aset(result, rb_funcall(mJSON, i_create_id, 0), rb_class_name(rb_obj_class(self)));
        ary = rb_funcall(self, i_unpack, 1, rb_str_new2("C*"));
        rb_hash_aset(result, rb_str_new2("raw"), ary);
        return result;
    }