diff --git a/epan/print.c b/epan/print.c index 33d2c69a3b..f381ef5c45 100644 --- a/epan/print.c +++ b/epan/print.c @@ -1278,7 +1278,8 @@ ek_write_field_value(field_info *fi, write_json_data* pdata) } else { /* show, value, and unmaskedvalue attributes */ - if (fi->hfinfo->type == FT_PROTOCOL) { + switch(fi->hfinfo->type) { + case FT_PROTOCOL: if (fi->rep) { json_dumper_value_string(pdata->dumper, fi->rep->representation); } @@ -1286,13 +1287,17 @@ ek_write_field_value(field_info *fi, write_json_data* pdata) proto_item_fill_label(fi, label_str); json_dumper_value_string(pdata->dumper, label_str); } - } - else if (fi->hfinfo->type != FT_NONE) { + break; + case FT_NONE: + json_dumper_value_string(pdata->dumper, NULL); + break; + default: dfilter_string = fvalue_to_string_repr(NULL, &fi->value, FTREPR_DISPLAY, fi->hfinfo->display); if (dfilter_string != NULL) { json_dumper_value_string(pdata->dumper, dfilter_string); } wmem_free(NULL, dfilter_string); + break; } } }