Aquí está el código:Json.NET Desactivar la deserialización de DateTime
string s = "2012-08-08T01:54:45.3042880+00:00";
JObject j1 = JObject.FromObject(new
{
time=s
});
Object o = j1["time"];
Podemos comprobar que o se secuencia y es igual a "2012-08-08T01: 54: 45.3042880 + 00: 00"
Ahora transferir j1.ToString() a otro programa, que es
{
"time": "2012-08-08T01:54:45.3042880+00:00"
}
luego en el otro programa, intenta analizar de nuevo a jobject, que es
JObject j2 = JObject.Parse(j1.ToString());
Object o2 = j2["time"];
Ahora, si comprobamos o2, el tipo de o2 es Fecha, o2.ToString() es 8/7/2012 9:54:45 PM.
Mi pregunta es:
¿Hay es manera de desactivar la deserialización Fecha de JObject.Parse, y acaba de obtener la cadena de crudo?
Gracias de antemano
el programa reciben toda la cadena JSON que es { "tiempo": "2012-08-08T01: 54: 45.3042880 + 00: 00"}, entonces el programa no puede usar JObject.FromObject para analizar, tiene que usar JObject.Parse para analizar la cadena y JOjbect.Parse solo toma 1 parámetro. – liuhongbo
@liuhongbo, raro que 'Parse' no proporcione las opciones que' FromObject' hace. Esto alcanzó su punto máximo en mi curiosidad, así que descargué la fuente y encontré una solución. Editaré mi respuesta. –
gracias, Samuel Neff, eso funciona perfecto. Además, encontró otra forma de manejar este problema: JsonSerializerSettings settings = new JsonSerializerSettings(); ; settings.DateParseHandling = DateParseHandling.None; JObject j2 = JsonConvert.DeserializeObject (j1.ToString(), configuraciones); –
liuhongbo