using Newtonsoft.Json.Serialization;
public static void Main()
var obj = JsonConvert.DeserializeObject<YourClass>(inputJson);
var serializerSettings = new JsonSerializerSettings
ContractResolver = new CustomContractResolver
NamingStrategy = new CamelCaseNamingStrategy()
string outputJson = JsonConvert.SerializeObject(obj, serializerSettings);
Console.WriteLine(outputJson);
public OtherClass Obj { get; set; }
public string MyStr { get; set; }
public string W { get; set; }
public string X { get; set; }
public string Y { get; set; }
public string Z { get; set; }
class CustomContractResolver : DefaultContractResolver
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
var prop = base.CreateProperty(member, memberSerialization);
if (prop.PropertyType == typeof(string) && prop.Readable)
prop.ShouldSerialize = obj =>
string val = (string)prop.ValueProvider.GetValue(obj);
return !string.IsNullOrEmpty(val) && !val.Equals("N/A", StringComparison.OrdinalIgnoreCase);