.NET NewtonSoft JSON deserialize map to a different property name

后端 未结 5 823
情歌与酒
情歌与酒 2020-11-22 09:20

I have following JSON string which is received from an external party.

{
   \"team\":[
      {
         \"v1\":\"\",
         \"attributes\":{
            \"         


        
5条回答
  •  无人共我
    2020-11-22 09:44

    I am using JsonProperty attributes when serializing but ignoring them when deserializing using this ContractResolver:

    public class IgnoreJsonPropertyContractResolver: DefaultContractResolver
        {
            protected override IList CreateProperties(Type type, MemberSerialization memberSerialization)
            {
                var properties = base.CreateProperties(type, memberSerialization);
                foreach (var p in properties) { p.PropertyName = p.UnderlyingName; }
                return properties;
            }
        }
    

    The ContractResolver just sets every property back to the class property name (simplified from Shimmy's solution). Usage:

    var airplane= JsonConvert.DeserializeObject(json, 
        new JsonSerializerSettings { ContractResolver = new IgnoreJsonPropertyContractResolver() });
    

提交回复
热议问题