Json.NET - evita reinicializar uma propriedade já serializada [duplicado]

Esta pergunta já tem uma resposta aqui:

Newtonsoft Json serializa uma classe em que uma das propriedades é JSON [duplicado] 2 respostas

Em um aplicativo de API da Web do ASP.NET, alguns dos modelos com os quais estou trabalhando contêm um pedaço de JSON ad-hoc que é útil apenas no lado do cliente. No servidor, ele simplesmente entra e sai de um banco de dados relacional como uma string. O desempenho é fundamental e parece inútil processar o lado do servidor de string JSON.

Então, em C #, imagine um objeto como este:

new Person
{
    FirstName = "John",
    LastName = "Smith",
    Json = "{ \"Age\": 30 }"
};

Por padrão, o Json.NET serializará este objeto assim:

{
    "FirstName": "John",
    "LastName": "Smith",
    "Json": "{ \"Age\": 30 }"
}

Eu gostaria de poder instruir o Json.NET a assumir que oJson A propriedade já é uma representação serializada, portanto, não deve ser serializada novamente, e o JSON resultante deve ficar assim:

{
    "FirstName": "John",
    "LastName": "Smith",
    "Json": {
        "Age": 30
    }
}

Idealmente, isso funciona nas duas direções, ou seja, ao POSTar a representação JSON, ela será desserializada automaticamente para a representação C # acima.

Qual é o melhor mecanismo para conseguir isso com o Json.NET? Preciso de um costumeJsonConverter? Existe um mecanismo mais simples baseado em atributos? A eficiência é importante; o ponto principal é pular a sobrecarga de serialização, quepoderia ser um pouco de micro-otimização, mas pelo bem do argumento, vamos supor que não. (Haverá potencialmente grandes listas comJson propriedades sendo retornadas.)

questionAnswers(3)

yourAnswerToTheQuestion