Skip to content

C# JsonFormatter does not output proto2 extension information #7251

Open
@Jensaarai

Description

@Jensaarai

What version of protobuf and what language are you using?
Version: v3.26.1
Language: C#

What operating system (Linux, Windows, ...) and version?
N/A

What runtime / compiler are you using (e.g., python version or gcc version)
N/A

What did you do?
JsonFormatter does not output proto2 extension information.

      [Test]
      public void FormatExtensionFields()
      {
        var formatter = JsonFormatter.Default;

        var message = new TestProtos.Proto2.TestAllExtensions();
        message.SetExtension(TestProtos.Proto2.UnittestExtensions.OptionalBoolExtension, true);
        message.SetExtension(
          TestProtos.Proto2.UnittestExtensions.OptionalNestedMessageExtension,
          new TestProtos.Proto2.TestAllTypes.Types.NestedMessage
          {
            Bb = 123
          });

        AssertJson("{ 'optionalBoolExtension': true, 'nestedMessage': { 'bb': 123 } }", formatter.Format(message));
      }

Result:

 FormatExtensionFields
   Source: JsonFormatterTest.cs line 55
   Duration: 85 ms

  Message: 
      Expected string length 65 but was 3. Strings differ at index 2.
      Expected: "{ "optionalBoolExtension": true, "nestedMessage": { "bb": 123..."
      But was:  "{ }"
      -------------^
    
  Stack Trace: 
    JsonFormatterTest.AssertJson(String expectedJsonWithApostrophes, String actualJson) line 640
    JsonFormatterTest.FormatExtensionFields() line 68

Metadata

Metadata

Assignees

No one assigned

    Labels

    c#inactiveDenotes the issue/PR has not seen activity in the last 90 days.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions