c# - Newtonsoft.Json 是否转义所有字符?

标签 c# json json.net

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

这个库是否转义了所有潜在的非法字符,或者我应该在尝试序列化之前转义这些字符?

例如

如果我有一个 Site 对象:

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 是否为我这样做?

最佳答案

Does this library escape all potentially illegal characters, or should I escape the characters before attempting to serialize?

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

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

关于c# - Newtonsoft.Json 是否转义所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045163/

相关文章:

c# - 如何跳过 Json.Net 中 IEnumerable 类型的默认 JavaScript 数组序列化?

c# - LINQ Web API 上的错误序列化

c# - 页面.FindControl?

c# - 如何设置边距以将元素定位在鼠标光标处

Javascript - 从树中递归删除某种类型的节点,但重新附加并传播符合条件的子节点

c# - ServiceStack.Text 序列化循环引用

c# - 检测 SQL 集群

c# - 为什么 python 请求工作但 C# 请求不工作?

javascript - 带有 jsonp 的 jQuery .ajax() 不调用成功回调函数

json - 基准 : BSON vs JSON