Method: Oj::Doc#dump
- Defined in:
- ext/oj/fast.c
permalink #dump(path, filename) ⇒ Object
Dumps the document or nodes to a new JSON document. It uses the default options for generating the JSON.
@param path [String] if provided it identified the top of the branch to
dump to JSON
@param filename [String] if provided it is the filename to write the output
to
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 |
# File 'ext/oj/fast.c', line 1563
static VALUE doc_dump(int argc, VALUE *argv, VALUE self) {
Doc doc = self_doc(self);
Leaf leaf;
const char *path = 0;
const char *filename = 0;
if (1 <= argc) {
if (Qnil != *argv) {
path = StringValuePtr(*argv);
}
if (2 <= argc) {
filename = StringValuePtr(argv[1]);
}
}
if (0 != (leaf = get_doc_leaf(doc, path))) {
volatile VALUE rjson;
if (0 == filename) {
struct _out out;
oj_out_init(&out);
out.omit_nil = oj_default_options.dump_opts.omit_nil;
oj_dump_leaf_to_json(leaf, &oj_default_options, &out);
rjson = rb_str_new2(out.buf);
oj_out_free(&out);
} else {
oj_write_leaf_to_file(leaf, filename, &oj_default_options);
rjson = Qnil;
}
return rjson;
}
return Qnil;
}
|