<分区>
在 ASP.NET Web API 应用程序中,我正在使用的一些模型包含大量仅在客户端有用的临时 JSON。在服务器上,它只是作为字符串进出关系数据库。性能是关键,处理 JSON 字符串服务器端似乎毫无意义。
所以在 C# 中,想象这样一个对象:
new Person
{
FirstName = "John",
LastName = "Smith",
Json = "{ \"Age\": 30 }"
};
默认情况下,Json.NET 将像这样序列化此对象:
{
"FirstName": "John",
"LastName": "Smith",
"Json": "{ \"Age\": 30 }"
}
我希望能够指示 Json.NET 假设 Json
属性已经是一个序列化表示,因此它不应该重新序列化,并且生成的 JSON 应该看起来像这个:
{
"FirstName": "John",
"LastName": "Smith",
"Json": {
"Age": 30
}
}
理想情况下,这在两个方向上都有效,即当发布 JSON 表示时,它将自动反序列化为上面的 C# 表示。
使用 Json.NET 实现此目的的最佳机制是什么?我是否需要自定义 JsonConverter
?有没有更简单的基于属性的机制?效率很重要;重点是跳过序列化开销,这可能有点微优化,但为了争论起见,我们假设不是。 (可能会返回包含大量 Json
属性的大列表。)