add json encoder option to render enums as ints
PiperOrigin-RevId: 453724657
diff --git a/upb/json_encode.c b/upb/json_encode.c
index 9af7a13..81c0501 100644
--- a/upb/json_encode.c
+++ b/upb/json_encode.c
@@ -210,7 +210,10 @@
if (strcmp(upb_EnumDef_FullName(e_def), "google.protobuf.NullValue") == 0) {
jsonenc_putstr(e, "null");
} else {
- const upb_EnumValueDef* ev = upb_EnumDef_FindValueByNumber(e_def, val);
+ const upb_EnumValueDef* ev =
+ (e->options & upb_JsonEncode_FormatEnumsAsIntegers)
+ ? NULL
+ : upb_EnumDef_FindValueByNumber(e_def, val);
if (ev) {
jsonenc_printf(e, "\"%s\"", upb_EnumValueDef_Name(ev));