0

我使用 RestKit 框架连接到一个 REST Web 服务。如果我想要 resultlistEntries,映射应该是什么样子。我有这样的 JSON 响应:

{
"resultlist.resultlist": {
    "paging": {
        "numberOfHits": 69978,
        "numberOfPages": 3499,
        "pageNumber": 1,
        "pageSize": 20
    },
    "resultlistEntries": [
        {
            "@numberOfHits": "69978",
            "@realEstateType": "7",
            "resultlistEntry": [
                {
                    "@creation": "2013-01-15T16:36:00.000+01:00",
                    "resultlist.realEstate": {
                        "@id": "68014527",
                        "@xsi.type": "search:Office",
                        "calculatedPrice": {
                            "currency": "EUR",
                            "marketingType": "RENT_PER_SQM",
                            "priceIntervalType": "MONTH",
                            "value": 4.5
                        },
                        "commercializationType": "RENT",
                        "courtage": {
                            "hasCourtage": "YES"
                        },
                        "floorplan": "false",
                        "netFloorSpace": 155,
                        "price": {
                            "currency": "EUR",
                            "marketingType": "RENT",
                            "priceIntervalType": "MONTH",
                            "value": 697.5
                        },
                        "totalFloorSpace": 155
                    }
                }
            ]
        }
    ]
}

}

和以下 RestKit 代码

NSString *pathPattern = @"resultlist.resultEntries";
NSString *keyPath = @"resultEntry";

RKResponseDescriptor *responseDescriptor = 
    [RKResponseDescriptor responseDescriptorWithMapping:mapping 
                                            pathPattern:pathPattern 
                                                keyPath:keyPath   
                                            statusCodes:statusCodes];

结果如下:

2013-01-15 16:49:00.102 RestKit_final[31840:c07] 
Failed with error: No response descriptors match the response loaded.

怎么了 ?

4

1 回答 1

0

pathPattern用于指定将使用响应描述符的端点。例如,@"/hotels/premium"作为 pathPattern 将意味着如果您调用响应描述符将不适用@"/hotels/cheap"。您可以将其设置为nil,但我总是希望我的响应描述符尽可能具体。

keypathJSON 响应中的数组resultlistEntry在技术上是resultlist.resultlist.resultlistEntries,但您可能对此部分有一些问题resultlist.resultlist。我建议将您的 API 更改为简单地返回,resultList然后您所需的密钥路径将是resultlist.resultlistEntries.

于 2013-01-21T21:07:27.337 回答