在Restkit中解析编码的json字符串

时间:2012-07-21 08:43:46

标签: json ios5 restkit

您好我正在尝试从Google Maps API解析此结果

{tooltipHtml:" (10.6 km / 15 mins)",polylines:[{id:"route0",points:"}psuIqmvu@xNnCnAHzBMvBo@??fCmA??MmDEqIHkGViHlHq`A??}DsAuAs@sAeAMAkZwY}OcP{OkOgCiCQ[cBuA??kIuE_S_KeEmDwA{B{EyIyDmHuFgL_CaIYuA?W[mCHc@??p@wANgA?oAIeAUeAKU_Aw@eAJo@z@[B{Ac@QDcVaGsAQyEM{DZaB\\wEbBU?mIrDoBb@yBRUJgKAsCe@mCoAiTkNyBqBkEkFi@a@sCqAgK_CqBMaKBoDGibAmNSOoCc@sIiAQFgD[yH[UIi@?sB\\yA@a@K??[fB??{TfIgBbAwFzD??XjBVX?X",levels:"B???BBBB???@BB???@?????BB??@???@????BB??@???@???????@?????@??@?????@?@??????????????BBBB??BB??B",numLevels:4,zoomFactor:16}]}

但是Restkit不接受编码点并给我这个错误

E restkit.network:RKResponse.m:289 Unable to parse response body: Unexpected token, wanted '{', '}', '[', ']', ',', ':', 'true', 'false', 'null', '"STRING"', 'NUMBER'.

我的代码如下所示,用于解析结果

- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {

NSError *error = nil;

NSDictionary *parsedResponse = [response parsedBody:&error];

1 个答案:

答案 0 :(得分:2)

我认为,答案的格式不是JSON。在JSON格式中,键被置于引号中:“”。

请参阅true J​​SON的示例:

  

{ “KEY1”:5 “KEY2”: “STRING_VALUE”}

或者从Google服务示例中看到真正的JSON:

  

{    “状态”:“好”,    “结果”:[{      “types”:street_address,      “formatted_address”:“1600 Amphitheatre Pkwy,Mountain View,CA 94043,USA”,      “address_components”:[{        “long_name”:“1600”,        “short_name”:“1600”,        “types”:street_number      },{        “long_name”:“Amphitheatre Pkwy”,        “short_name”:“Amphitheatre Pkwy”,        “类型”:路线      },{        “long_name”:“山景”,        “short_name”:“山景”,        “类型”:[“地方”,“政治”]      },{        “long_name”:“加利福尼亚”,        “short_name”:“CA”,        “types”:[“administrative_area_level_1”,“政治”]      },{        “long_name”:“美国”,        “short_name”:“US”,        “类型”:[“国家”,“政治”]      },{        “long_name”:“94043”,        “short_name”:“94043”,        “types”:postal_code      }],      “几何”:{        “地点”: {          “lat”:37.4219720,          “lng”: - 122.0841430        },        “location_type”:“ROOFTOP”,        “viewport”:{          “西南”:{            “lat”:37.4188244,            “lng”: - 122.0872906          },          “东北”:{            “lat”:37.4251196,            “lng”: - 122.0809954          }        }      }    }]   }

来自:https://developers.google.com/maps/documentation/geocoding/?hl=ru#JSON

为了测试我的JSON,我通常使用http://json.parser.online.fr/(但对于Google的示例答案,由于名为“type”的未知密钥,它无法正常工作。)