Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
JSON::ResumableParser#value
value → object
ext/json/parser/parser.c
View on GitHub ↗
static VALUE cResumableParser_value(VALUE self)
{
JSON_ResumableParser *parser = ResumableParser_acquire(self, false);
if (parser->frames.head > 0) {
json_frame *frame = json_frame_stack_peek(&parser->frames);
if (frame->phase == JSON_PHASE_DONE) {
VALUE result = *rvalue_stack_peek(parser->state.value_stack, 1);
rvalue_stack_pop(parser->state.value_stack, 1);
json_frame_stack_pop(parser->state.frames);
return result;
}
}
rb_raise(rb_eArgError, "no ready value");
}
Returns and consume the last parsed value. Raises ArgumentError if there is no parsed value or if it was already retrieved:
Example
parser << '[1][2]' parser.value # ArgumentError no ready value parser.parse # => true parser.value # => [1] parser.value # ArgumentError no ready value