强制JSON的正确方法是什么?Net转义正斜杠(solidus)字符



因此出于业务原因,我需要强制使用JSON。. NET转义JSON blob,如下:

{ url: 'http://some.uri/endpoint' }

{ "url": "http://some.uri/endpoint" }

也就是说它需要转义正斜杠字符。我知道 JSON规范不需要这样做,从技术上讲,这两者是相等的,但在这种特殊情况下,我需要用JSON创建完全相同的字符串。. NET,因为我从其他地方得到

强制JSON的最好方法是什么?NET做这个?

创建一个新的JSONConverter子类(例如MyPedanticStringConverter)并像这样使用它会有意义吗?

string json = JSONConvert.SerializeObject(
    myObject, 
    Formatting.None, 
    new MyPedanticStringConverter());

如果你正在寻找一个通用的解决方案,写一个转换器可能是你要走的路。

另一种解决方案是以以下方式向类添加属性:

[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class MyObject
{
    public string Url
    {
        get;
        set;
    }
    [JsonProperty("url")]
    private string UrlJson
    {
        get { return this.Url.Replace("/", "\/"); }
    }
}

(显然,您可以将Replace方法更改为更复杂和更彻底的方法)。

相关内容

  • 没有找到相关文章

最新更新