0

次の形式の日付を持つ .NET サービスから JSON オブジェクトを取得しています。/Date(1368825702750-0500)/

その形式を NSDate に逆シリアル化し、別の形式を使用して NSDate を表示できるようにする必要があります。

私は RestKit を使用していますが、適切な日付フォーマッタを使用するように指示する方法がわかりません。RKDotNetDateFormatter があることは知っていますが、適切な使用方法がわかりません。私が他のサイトで見た例のほとんどは、RestKit の現在のバージョンには存在しないメソッドとクラスを使用しています。現在、次のように設定しようとしています。

RKDotNetDateFormatter *formatter = [RKDotNetDateFormatter dotNetDateFormatterWithTimeZone:[NSTimeZone systemTimeZone]];
[RKObjectMapping addDefaultDateFormatter:formatter];
[RKObjectMapping setPreferredDateFormatter:formatter];

この時点で JSON を文字列として持っているので、次のようにして逆シリアル化します。

MyDisplayEntity *infoMapped = [[MyDisplayEntity alloc] init];

RKMappingOperation* mapper = [[RKMappingOperation alloc] initWithSourceObject:object destinationObject:infoMapped mapping:[MyDisplayEntity responseMapping]];
mapper.dataSource = object;
[mapper performMapping:&error];

私の NSDates を除いて、すべてが正しくマップされているようです。

この形式を適切に逆シリアル化する方法の例はありますか?

4

3 に答える 3

2

オブジェクト マッピングで日付と時刻を直接処理する方法を構成することもできます (ただし、表示するグローバル設定も機能するはずです)。

dateFormattersプロパティをRKDotNetDateFormatter *formatter(配列内の)に設定します。

トレース ログを有効にして、マッピング プロセスの詳細を取得することも役立つ場合があります。

RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
于 2013-05-17T16:47:04.730 に答える
0

ソースコードを掘り下げた後、標準のサービス取得メソッドを使用すると、宛先エンティティへのマッピングが正確にケース化されているかどうかは気にしないように見えることがわかりました。ただし、RKMappingOperation を使用するには、大文字と小文字を正確に区別する必要があります。

ここでユーザーエラーだったようです:P

于 2013-05-17T17:13:20.840 に答える
0

最初に日付フォーマッタ オブジェクトを宣言します

var dateFormater = RKDotNetDateFormatter()

この日付フォーマッタを defaultValueTransformer() と特定の RKEntityMapping/RKObjectMapping に追加します

RKValueTransformer.defaultValueTransformer().addValueTransformer(dateFormater)
btaMapping.valueTransformer = RKValueTransformer.defaultValueTransformer()
于 2015-07-24T21:04:05.873 に答える