-1

アプリケーション内のモジュールの 1 つにサードパーティ ベンダーを使用しています。Web サービス エンドポイントはサードパーティ ベンダーによって提供されます。

コメントの投稿を処理する Web サービス エンドポイントの 1 つについては、

ASP.NET C# Web アプリケーションは JSON データを返します。

JSON データの処理に James Newton-King Json.NET を使用しています。

サードパーティ ベンダーの Web サービスから受け取った JSON データ内で、コメントが投稿された時刻に関連付けられた次の日付を取得します。

\"date_created\": 1375206707,\r\n 

したがって、受信する JSON データに対応する ASP.NET DataContract C# クラスを作成しました。

さらに、C# クラスには、投稿されたコメントに関連付けられた作成日に対応する次の DataMember があります。

[DataMember(Name = "date_created")]
public string CommentCreationDate { get; set; }

次の JSON 日付形式を解析する方法について提案してください

ASP.NET C# の世界 (James Newton-King Json.NET も関与している可能性があります):

\"date_created\": 1375206707,\r\n 
4

3 に答える 3

3

カスタムコンバーターを作成することでそれを行うことができます。

string json = @"{""date_created"":1375206707}";

var obj = JsonConvert.DeserializeObject<TempClass>(json,new DateConverter());

public class TempClass
{
    public DateTime date_created;
}

public class DateConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(DateTime);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return new DateTime(1970, 1, 1).AddSeconds((long)reader.Value);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }
}
于 2013-08-29T14:45:28.963 に答える