0

JSONModels の作成時にエラーが発生します。

エラー Domain=JSONModelErrorDomain Code=1 「無効な JSON データ: initWithDictionary:error を使用して JSONModel オブジェクトを初期化しようとしましたが、辞書パラメーターが 'NSDictionary' ではありませんでした。」UserInfo=0x9bc2340 {kJSONModelKeyPath=categories.Data, NSLocalizedDescription=無効な JSON データ: initWithDictionary:error を使用して JSONModel オブジェクトを初期化しようとしましたが、辞書パラメーターが 'NSDictionary' ではありませんでした。}

これが私が得ている応答です...

{
    "categories": {
        "Data": [
            {
                "Id": 19,
                "Name": "",
                "Description": "",
                "ImageURL": "",
                "FullSizeImageUrl": "",
                "ParentCategoryId": 0
            }
        ],
        "Total": 1
    }
}

ここに私のモデルがあります

@interface CategoryResponse : JSONModel
@property (strong, nonatomic) NSDictionary <Categories> *categories;
@end

@protocol Categories @end
@interface Categories : JSONModel
@property (assign, nonatomic) int Total;
@property (strong, nonatomic) NSArray<CategoryData> *Data;
@end

@protocol CategoryData @end
@interface CategoryData : JSONModel
@property (strong, nonatomic) NSString <Optional> *Name;
@property (strong, nonatomic) NSString <Optional> *Description;
@property (strong, nonatomic) NSString <Optional> *ImageURL;
@property (strong, nonatomic) NSString <Optional> *FullSizeImageUrl;
@property (assign, nonatomic) int Id;
@property (assign, nonatomic) int ParentCategoryId;

void (^success)(AFHTTPRequestOperation *, id) = ^(AFHTTPRequestOperation *op, id data) {
    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    NSError *error;

    categories = [[CategoryResponse alloc] initWithString:responseString error:&error];

    complete(nil, categories);
};

これを行うには適切な方法ではないこと@property (strong, nonatomic) NSDictionary <Categories> *categories;はわかっていますが、それが何であるかはわかりません。

4

1 に答える 1

-1

辞書の割り当てを次のように処理できると思います。

void (^success)(AFHTTPRequestOperation *, id) = ^(AFHTTPRequestOperation *op, id データ) {
    カテゴリ = [NSJSONSerialization JSONObjectWithData:データ オプション:0 エラー:nil];

    完全(なし、カテゴリ);
};

NSURLConnection を使用するのが好きなので、AFNetworking にはあまり詳しくありませんが。

于 2014-03-07T21:49:00.807 に答える