Test json name conflicts
PiperOrigin-RevId: 492380119
diff --git a/conformance/binary_json_conformance_suite.cc b/conformance/binary_json_conformance_suite.cc
index d1dda61..c1d38b5 100644
--- a/conformance/binary_json_conformance_suite.cc
+++ b/conformance/binary_json_conformance_suite.cc
@@ -2005,6 +2005,21 @@
optional_int32: 1
optional_int64: 2
)");
+ RunValidJsonTest("FieldNameConflict1", REQUIRED,
+ "{\n \"jsonConflict\": \"hello\"\n}",
+ R"pb(
+ json_field_conflict1: "hello"
+ )pb");
+ RunValidJsonTest("FieldNameConflict2", REQUIRED,
+ "{\n \"jsonConflict\": \"hello\"\n}",
+ R"pb(
+ json_field_conflict2: "hello"
+ )pb");
+ RunValidJsonTest(
+ "FieldNameConflictBoth", REQUIRED, "{\n \"jsonConflict\": \"hello\"\n}",
+ R"pb(
+ json_field_conflict1: "hello" json_field_conflict2: "hello"
+ )pb");
// Missing comma between key/value pairs.
ExpectParseFailureForJson(
"MissingCommaOneLine", RECOMMENDED,
diff --git a/src/google/protobuf/test_messages_proto2.proto b/src/google/protobuf/test_messages_proto2.proto
index 1cc7c86..67a19dd 100644
--- a/src/google/protobuf/test_messages_proto2.proto
+++ b/src/google/protobuf/test_messages_proto2.proto
@@ -233,6 +233,9 @@
optional int32 field_name17__ = 417;
optional int32 Field_name18__ = 418;
+ optional string json_field_conflict1 = 419 [json_name = "jsonConflict"];
+ optional string json_field_conflict2 = 420 [json_name = "jsonConflict"];
+
// Reserved for unknown fields test.
reserved 1000 to 9999;
diff --git a/src/google/protobuf/test_messages_proto3.proto b/src/google/protobuf/test_messages_proto3.proto
index 1e1285e..9144e2c 100644
--- a/src/google/protobuf/test_messages_proto3.proto
+++ b/src/google/protobuf/test_messages_proto3.proto
@@ -264,6 +264,9 @@
int32 field_name17__ = 417;
int32 Field_name18__ = 418;
+ optional string json_field_conflict1 = 419 [json_name = "jsonConflict"];
+ optional string json_field_conflict2 = 420 [json_name = "jsonConflict"];
+
// Reserved for testing unknown fields
reserved 501 to 510;
}