2

少し問題があります。DataContractJsonSerializer複雑なタイプ(独自のタイプ)で使用している場合は、正常に機能します。ただし、TimeStampまたはDateTimeを文字列から逆シリアル化する必要があります。したがって、これらのタイプをDataContract、DataMember属性でマークすることはできません。

私はいくつかのコードを書きました

string jsonedTS = "PT2M15S";

DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(TimeSpan));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonedTS));
try {
    result.Takes = (TimeSpan) jsonSerializer.ReadObject(ms);
} catch {
 ;
}

そして、私はこの例外をキャッチします

{"タイプSystem.TimeSpanのオブジェクトの逆シリアル化中にエラーが発生しました。予期しない文字'P'が発生しました。"}System.Exception{System.Runtime.Serialization.SerializationException}

そして私の質問はどうすれば逆シリアル化できますか

4

1 に答える 1

0

Json.Netライブラリを試すことができます-これまではかなりうまく機能していました。

于 2009-11-12T09:37:15.757 に答える