Newtonsoft.Json是否转义了所有字符



我使用 NewtonSoft.JSON 将对象数据保存为 JSON。

此库是转义所有潜在的非法字符,还是应该在尝试序列化之前转义这些字符?

例如

如果我有一个网站对象:

public class Site 
{
    public string SiteName { get; set; }   
}
...
...
var site = new Site();
site.SiteName = "$$ what could I/Put 'here' %$%^*^(&*& to break this?";
var outputJson = JsonConvert.SerializeObject(site);

我是否有可能通过添加未转义的非法字符来破坏SerializeObject()方法,或者NewtonSoft.Json是否为我这样做?

此库是转义所有潜在的非法字符,还是应该在尝试序列化之前转义这些字符?

如果它声称序列化为 JSON 并且没有正确处理,那将是一个非常垃圾的库。

此外,如果您在将数据提供给库之前"转义"这些字符,那么库将转义转义,您将无法获得您想要的结果。例如,假设我认为它不会处理转义表单馈送(f)字符,所以我这样做是为了"转义"它们:mydata = mydata.replace(/f/g, "\f");现在,mydata不再有表单馈送,它有一个反斜杠,后跟字母f。如果您将其编码为 JSON,然后对其进行解码,它将是一个反斜杠,后跟字母 f ,而不是表单馈送。

最新更新