DataContractJsonSerializer Parsen von iso-8601-Datum
Habe ich eine json-welches Datum hat als 2012-06-07T00:29:47.000
hat und deserialisiert werden.
Aber auf
DataContractJsonSerializer serializer = new DataContractJsonSerializer(type);
return (object)serializer.ReadObject(Util.GetMemoryStreamFromString(json));
Bekomme ich unten Ausnahme
There was an error deserializing the object of type System.Collections.Generic.List`1
[[MyNameSpace.MyClass, MyNameSpace, Version=1.0.4541.23433, Culture=neutral, PublicKeyToken=null]].
DateTime content '2012-06-07T00:29:47.000' does not start with '\/Date(' and end with ')\/' as required for JSON
Es ist ein arbeiten in windows mobile 7
aber der gleiche code funktioniert nicht in windows 8.
Es wird erwartet Datumsformat als \/Date(1337020200000+0530)\/
statt 2012-06-07T00:29:47.000
.
Erfordert es einer benutzerdefinierten Serialisierung wenn ja, dann wie?
Und ich kann nicht mit JSON.NET
ich bin gebunden zu verwenden DataContractJsonSerializer
und ich kann es nicht ändern Sie das format der JSON als die gleichen, die JSON verwendet für android.
Ich bin neu in .net.
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie eine string-Eigenschaft für das serialisieren/deserialisation, und eine separate, nicht-serialisierte Eigenschaft, wandelt es in ein DateTime. Leichter finden Sie einige Beispiel-code:
Könnte man die Analyse in der setter FormattedReturnDate statt, um ihm zu erlauben, zu scheitern früher, wenn Sie einen schlechten Tag empfangen wird.
Bearbeitet gehören GôTô's Vorschlag zu geben, der serialisierte DataMember-der richtige name ist.
2012-06-07T00:29:47.000
ich habe dieseyyyy'-'MM'-'dd'T'HH':'mm':'ss
aber nicht wissen, was zu tun mit.000
f
z.B.yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff
. Aber die standard-format-Bezeichner vono
ist ziemlich in der Nähe, die schon, jedoch wird es auch einen Zeit-zone, wenn Ihr DateTime.Art istUtc
oderLocal
.[DataMember]
mit[DataMember(Name="ReturnDate")]
den gleichen Namen haben vor und nach der SerialisierungPass das format, in DataContractJsonSerializer Konstruktor