因此,出于商业原因,我需要强制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());
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找通用解决方案,那么编写转换器可能是最佳选择。
另一种解决方案是按以下方式向类添加属性:
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class MyObject
{
public string Url
{
get;
set;
}
[JsonProperty("url")]
private string UrlJson
{
get { return this.Url.Replace("/", "\\/"); }
}
}
Run Code Online (Sandbox Code Playgroud)
(显然,您可以将 Replace 方法更改为更复杂、更彻底的方法)。
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |