diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2025-08-23 16:06:38 +0200 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2025-08-27 10:01:52 +0900 |
| commit | c3a80ca58226f588ef393ab5ae1de304eabf9a9d (patch) | |
| tree | ac1aba279007aec2c3abdb0189cd2beead1d473d /ext/json | |
| parent | d325e3ed706ec356c9439824ed82cbcdb4487859 (diff) | |
Fix `JSON.generate` `strict: true` mode to also restrict hash keys
Diffstat (limited to 'ext/json')
| -rw-r--r-- | ext/json/generator/generator.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c index af6ba16e3f..c71e2f28a7 100644 --- a/ext/json/generator/generator.c +++ b/ext/json/generator/generator.c @@ -1038,6 +1038,9 @@ json_object_i(VALUE key, VALUE val, VALUE _arg) key_to_s = rb_sym2str(key); break; default: + if (data->state->strict) { + raise_generator_error(key, "%"PRIsVALUE" not allowed in JSON", rb_funcall(key, i_to_s, 0)); + } key_to_s = rb_convert_type(key, T_STRING, "String", "to_s"); break; } |
