소스 검색

Merge pull request #1517 from jhickson/boolvalue

Fix C# Json parsing of well-known type Boolvalue
Jon Skeet 9 년 전
부모
커밋
cca2d44ef1
2개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 7 0
      csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs
  2. 2 1
      csharp/src/Google.Protobuf/JsonParser.cs

+ 7 - 0
csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs

@@ -417,5 +417,12 @@ namespace Google.Protobuf.WellKnownTypes
             TestWellKnownTypes.Descriptor.Fields[TestWellKnownTypes.StringFieldFieldNumber].Accessor.Clear(message);
             Assert.IsNull(message.StringField);
         }
+
+        [Test]
+        public void GivenBoolValueWhenPerformingRoundTripEncodingViaJsonThenShouldNotExpectObjectAtTopLevel()
+        {
+            var value = new BoolValue { Value = true };
+            Assert.AreEqual(value, JsonParser.Default.Parse<BoolValue>(JsonFormatter.Default.Format(value)));
+        }
     }
 }

+ 2 - 1
csharp/src/Google.Protobuf/JsonParser.cs

@@ -86,7 +86,8 @@ namespace Google.Protobuf
             { FloatValue.Descriptor.FullName, MergeWrapperField },
             { DoubleValue.Descriptor.FullName, MergeWrapperField },
             { BytesValue.Descriptor.FullName, MergeWrapperField },
-            { StringValue.Descriptor.FullName, MergeWrapperField }
+            { StringValue.Descriptor.FullName, MergeWrapperField },
+            { BoolValue.Descriptor.FullName, MergeWrapperField }
         };
 
         // Convenience method to avoid having to repeat the same code multiple times in the above