class Object
Public Class Methods
[](obj, opts={})
click to toggle source
If the obj argument is a String then it is assumed to be a JSON String and parsed otherwise the obj is encoded as a JSON String.
-
obj [String|Hash|Array] object to convert
-
opts [Hash] same options as either generate or parse
Returns [Object]
static VALUE mimic_dump_load(int argc, VALUE *argv, VALUE self) {
if (1 > argc) {
rb_raise(rb_eArgError, "wrong number of arguments (0 for 1)");
}
if (T_STRING == rb_type(*argv)) {
return mimic_load(argc, argv, self);
}
return mimic_dump(argc, argv, self);
}
Public Instance Methods
to_json(*args)
click to toggle source
static VALUE mimic_object_to_json(int argc, VALUE *argv, VALUE self) {
struct _out out;
VALUE rstr;
struct _options copts = oj_default_options;
copts.str_rx.head = NULL;
copts.str_rx.tail = NULL;
oj_out_init(&out);
out.omit_nil = copts.dump_opts.omit_nil;
copts.mode = CompatMode;
copts.to_json = No;
if (1 <= argc && Qnil != argv[0]) {
oj_parse_mimic_dump_options(argv[0], &copts);
}
// To be strict the mimic_object_to_json_options should be used but people
// seem to prefer the option of changing that.
// oj_dump_obj_to_json(self, &mimic_object_to_json_options, &out);
oj_dump_obj_to_json_using_params(self, &copts, &out, argc, argv);
if (NULL == out.buf) {
rb_raise(rb_eNoMemError, "Not enough memory.");
}
rstr = rb_str_new2(out.buf);
rstr = oj_encode(rstr);
oj_out_free(&out);
return rstr;
}