dynamically change the json property name and serialize

前端 未结 2 584
旧巷少年郎
旧巷少年郎 2020-12-12 06:50

i want to change the json property name dynamically and serialize the object.

here is my json for two different entities

For customer



        
2条回答
  •  一整个雨季
    2020-12-12 07:24

    using the ContentResolver i have solve the issue

    here is the code

    public class UserRequestResolver : DefaultContractResolver
    {
        private string propertyName;
    
        public UserRequestResolver()
        {
        }
        public UserRequestResolver(string name)
        {
            propertyName = name;
        }
        public new static readonly UserRequestResolver Instance = new UserRequestResolver();
    
        protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
        {
            JsonProperty property = base.CreateProperty(member, memberSerialization);
    
            if (property.PropertyName == "requestList")
            {
                property.PropertyName = propertyName;              
            }
            return property;
         }
    }
    

    once can pass specific property name in the constructor.

    JsonSerializerSettings settings = new JsonSerializerSettings();
                settings.ContractResolver = new UserRequestResolver("contactList");
    

提交回复
热议问题