title: Json Convert empty string instead of null
body: <p>I'm trying to serialize my struct so that the strings that didn't get a value get their default value "" instead of null</p>
  
  <pre><code>[JsonProperty(PropertyName = "myProperty", DefaultValueHandling = DefaultValueHandling.Populate)]
  [DefaultValue("")]
  public string MyProperty{ get; set; }
  </code></pre>
  
  <p>My result in the Json string:</p>
  
  <pre><code>"myProperty": null,
  </code></pre>
  
  <p>what i want</p>
  
  <pre><code>"myProperty": "",
  </code></pre>
  
  <p>I also tried creating a converter without any effect, the can Convert and WriteJson functions aren't even firing for some reason:</p>
  
  <pre><code>[JsonProperty(PropertyName = "myProperty")]
  [JsonConverter(typeof(NullToEmptyStringConverter))]
  public string MyProperty{ get; set; }
  
  class NullToEmptyStringConverter : JsonConverter
  {
      public override bool CanConvert(Type objectType)
      {
          return objectType == typeof(object[]);
      }
  
      public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
      {
          throw new NotImplementedException();
      }
  
      public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
      {
          if (value == null)
              writer.WriteValue("");
      }
  }
  </code></pre>
  
  <p>This isnt helping either <a href="https://stackoverflow.com/questions/15136041/json-net-how-to-deserialize-null-as-empty-string">Json.Net How to deserialize null as empty string?</a></p>