0

openweathermap APIを使用して、現在の天気を出力します。このJSON (利用可能な都市を含む JSON)を解析する必要があります。NSJSONSerializer で解析してみましたが、答えは :"error NSError * domain: @"NSCocoaErrorDomain" - code: 3840" でした。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"city.list" ofType:@"json"];
NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
NSError *error;
NSData *objectData = [myJSON dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:&error];

私が理解しているように、エラー 3840 は JSON 形式が間違っていることを示していますが、公式の openweathermap ページから JSON をダウンロードしました。どうしたの?この JSON を正しく解析するにはどうすればよいですか?

4

2 に答える 2

0

あなたのjsonは正しくフォーマットされていません。

{"_id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}}
{"_id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}}

する必要があります

[{"_id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}},
{"_id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}},    
...]

最後にカプセル化された角括弧とコンマに注意してください。

または、テキストを 1 行ずつ解析することもできます (そのように解析されるようです)。

于 2015-07-22T11:16:51.693 に答える