Code review fixes
This commit is contained in:
parent
0d32ab37fa
commit
6f8dd2115b
@ -119,7 +119,7 @@ message TestJsonFieldOrdering {
|
||||
}
|
||||
|
||||
message TestJsonName {
|
||||
// json_name field options are not properly handled during deserialization
|
||||
// Message for testing the effects for of the json_name option
|
||||
string name = 1;
|
||||
string description = 2 [json_name = "desc"];
|
||||
string guid = 3 [json_name = "exid"];
|
||||
|
@ -66,6 +66,7 @@ namespace Google.Protobuf
|
||||
var settings = new JsonParser.Settings(10, TypeRegistry.FromFiles(UnittestIssuesReflection.Descriptor));
|
||||
var parser = new JsonParser(settings);
|
||||
|
||||
// It is safe to use either original field name or explicitly specified json_name
|
||||
Assert.AreEqual(new TestJsonName { Name = "test", Description = "test2", Guid = "test3" },
|
||||
parser.Parse<TestJsonName>("{ \"name\": \"test\", \"desc\": \"test2\", \"guid\": \"test3\" }"));
|
||||
}
|
||||
|
@ -238,8 +238,7 @@ namespace Google.Protobuf
|
||||
writer.Write(PropertySeparator);
|
||||
}
|
||||
|
||||
WriteString(writer, string.IsNullOrEmpty(accessor.Descriptor.JsonName) ?
|
||||
ToCamelCase(accessor.Descriptor.Name) : accessor.Descriptor.JsonName);
|
||||
WriteString(writer, accessor.Descriptor.JsonName);
|
||||
writer.Write(NameValueSeparator);
|
||||
WriteValue(writer, value);
|
||||
|
||||
|
@ -94,7 +94,7 @@ namespace Google.Protobuf.Reflection
|
||||
/// <summary>
|
||||
/// The json_name option of the descriptor's target.
|
||||
/// </summary>
|
||||
public string JsonName { get { return proto.JsonName; } }
|
||||
public string JsonName { get { return proto.JsonName == "" ? JsonFormatter.ToCamelCase(proto.Name) : proto.JsonName; } }
|
||||
|
||||
internal FieldDescriptorProto Proto { get { return proto; } }
|
||||
|
||||
|
@ -102,10 +102,8 @@ namespace Google.Protobuf.Reflection
|
||||
var map = new Dictionary<string, FieldDescriptor>();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
map[JsonFormatter.ToCamelCase(field.Name)] = field;
|
||||
map[field.Name] = field;
|
||||
if (!string.IsNullOrEmpty(field.JsonName))
|
||||
map[field.JsonName] = field;
|
||||
map[field.JsonName] = field;
|
||||
}
|
||||
return new ReadOnlyDictionary<string, FieldDescriptor>(map);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user