Json.NET: evitar volver a serializar una propiedad ya serializada [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Newtonsoft Json serializa una clase donde una de las propiedades es JSON [duplicado] 2 respuestas

En una aplicación ASP.NET Web API, algunos de los modelos con los que estoy trabajando contienen una porción de JSON ad-hoc que es útil solo en el lado del cliente. En el servidor, simplemente entra y sale de una base de datos relacional como una cadena. El rendimiento es clave, y parece inútil procesar el lado del servidor de cadena JSON.

Entonces, en C #, imagine un objeto como este:

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

Por defecto, Json.NET serializará este objeto así:

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

Me gustaría poder indicarle a Json.NET que asuma queJson La propiedad ya es una representación serializada, por lo que no debería volver a serializarse, y el JSON resultante debería verse así:

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

Idealmente, esto funciona en ambas direcciones, es decir, al PUBLICAR la representación JSON, se deserializará automáticamente a la representación C # anterior.

¿Cuál es el mejor mecanismo para lograr esto con Json.NET? ¿Necesito una costumbreJsonConverter? ¿Existe un mecanismo más simple basado en atributos? La eficiencia importa; todo el punto es omitir la sobrecarga de serialización, quepodría ser un poco de micro-optimización, pero por el bien de los argumentos, supongamos que no lo es. (Posiblemente habrá grandes listas con voluminososJson propiedades que se devuelven.)