Ich spreche mit einem Webdienst von Xamarin. Es wird Tage, nach unten über den Draht in JSON, in ISO-8601-Format, wie das Senden:ServiceStack.Text in .NET, das geschachtelte Datetime nicht deserialisiert
"2016-05-13T16: 02: 47,480 bis 07: 00"
Wenn ich versuche nur deserialisieren einzelnes Datum, es funktioniert gut. Aber wenn die DateTime ein Member der Klasse ist, funktioniert es nicht. Kein Fehler ist gegeben. Hier ist ein Beispielcode:
using ServiceStack.Text;
class TestDate {
public DateTime testDate;
}
void Test() {
JsConfig.DateHandler = JsonDateHandler.ISO8601;
// this works just fine:
String dateString = "2016-05-13T16:02:47.480-07:00";
DateTime theDate = dateString.FromJson<DateTime>();
// this does not deserialize
String testStr = "{\"testDate\":\"2016-05-13T16:02:51.923-07:00\"}";
TestDate tester = testStr.FromJson<TestDate>();
}
Irgendwelche Ideen? Ich sehe keinen Fehler, erhalte nur ein neues TestDate-Objekt ohne das Datum zu setzen.
Ok ich habe keine Kontrolle über den Web-Service, irgendwelche Ideen für den besten Weg, um es zu analysieren ? Wie kommt es, dass es mit einem einzigen Datum funktioniert? –
@DaveVronay Es wird standardmäßig analysiert, ohne den DateHandler zu ändern. Außerdem sieht es so aus, als ob Sie eine sehr alte Version von ServiceStack.Text verwenden, in der der 'JsonDateHandler' -Typ nicht mehr existiert. – mythz
Auch ich habe gerade die Seite überprüft, die Sie verknüpft haben, und es scheint, dass die ISO 8601 Zeitzonen unterstützt ... https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators –