Skip to navigation

1.70.3

(fix): Unknown JSON keys that match a declared field’s wire name case-insensitively (e.g. VALUE next to a declared value) are no longer kept in ExtraProperties when decoding, so they are not re-emitted after the declared field on encode. Case-insensitive, last-wins decoders such as Go’s encoding/json would otherwise read the re-emitted key instead of the declared field. MarshalJSONWithExtraProperties now also rejects extra properties that collide case-insensitively with a declared key. Unknown keys that don’t collide (e.g. brand_new_field) are still preserved and round-tripped.