3

同じ値「id」(「id」、「_id」、または「pId」)に対して異なるインターフェースを持つことができるAPIを呼び出します。

ただし、現在、最初の : @"id": @"_id" に対してのみ機能します。他は無視されます。

JSON

 object:{ "pId" : 192039,
         "name" : "test}

動作する IOS: self.id = 192039

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{
             @"id": @"pId",
             @"id": @"_id",
             @"id": @"id",
             @"title": @"name",
            };
}

動作しない IOS: self.id =

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{

             @"id": @"_id",
             @"id": @"id",
             @"id": @"pId",
             @"title": @"name",
            };
}

編集

ディクショナリ内のキーは一意でなければなりません....

私が見つけた唯一の解決策は、3つの異なるプロパティを作成し、そのようなセッターをオーバーライドすることです:

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{
             @"pId": @"pId",
             @"id2": @"_id",
             @"id": @"id",
             @"title": @"name",
            };
}

- (void) setPid:(NSString *)pId
{
    _id = pId;
}

- (void) setId2:(NSString *)id2
{
    _id = id2;
}
4

2 に答える 2

0

キーを繰り返すことはできません

@{key:value,...}

このような他のことを試すことができます

return @{
     @"id" : @[@"_id",@"id",@"pId"],
     @"title" : @"name"
   };

または @"id1 のように @"id" キーにプレフィックスを追加する

于 2014-03-07T23:02:30.033 に答える