2012-02-06 219 views
2

我的代碼:JSON解析問題

NSString *jsonString; 

jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

// Create a dictionary from the JSON string 
NSDictionary *results = [jsonString JSONValue]; 

NSLog(@"%@",jsonString); 
// Build an array from the dictionary for easy access to each entry 
NSArray *places = [results objectForKey:@"description"]; 

我沒有得到結果我想要的。 當我調試代碼時,我得到2個鍵/值對的NSArray地方的對象。

+0

鏈路:HTTPS:?//maps.googleapis.com/maps/api/place/autocomplete/json輸入=肖拉普爾&傳感器=真鍵= AIzaSyC0K5UhV_BWmXhncIZEnbh-WG2RVQVgfdY – anjum 2012-02-06 12:20:13

回答

1

這是正確的,你有2個鍵/值對。前兩個鍵完好無損是「預測」和「狀態」。所以你必須首先提取預測(它是一個數組):


NSArray *predictions = [results objectForKey:@"predictions"]; 

然後迭代它;還注意到,「說明」是一個字符串,讓你必須使用「」分隔它拆分地方:


for(NSDictionary *aPrediction in predictions) { 
    NSString *description = [aPrediction objectForKey:@"description"]; 
    NSArray *placesInDescription = [description componentsSeparatedByString:@","]; 
} 
+0

我仍然在爲NSArray預測獲取0個對象 – anjum 2012-02-06 12:53:32

+0

「預測」名稱中存在錯字 – viggio24 2012-02-06 14:18:12

+0

對不起,我沒有得到你想要解釋的內容。 – anjum 2012-02-06 14:20:32

0

也許你應該使用:

NSArray *places = [results valueForKey:@"predictions"]; 
+0

0對象的地點。 – anjum 2012-02-06 12:59:48

+0

使用:NSArray * places = [results valueForKey:@「predictions」];而不是「objectForKey」。 – CarlJ 2012-02-06 13:18:30

+0

仍然相同。 – anjum 2012-02-06 13:23:44

0

工作對我來說沒有用JSON包的任何問題! JSON文件的

NSString *jsonString; 

     NSData *responseData = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/autocomplete/json?input=solapur&sensor=true&key=AIzaSyC0K5UhV_BWmXhncIZEnbh-WG2RVQVgfdY"]]; 

     jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

     // Create a dictionary from the JSON string 
     NSDictionary *results = [jsonString objectFromJSONString]; 

     // Build an array from the dictionary for easy access to each entry 
     NSArray *places = [results valueForKey:@"predictions"]; 

     NSLog(@"places %@", places); 
+0

什麼是objectFromJSONString? – anjum 2012-02-06 13:30:35

+0

它將JSON字符串轉換爲對象的JSONKit方法。你用過SBJSON嗎? – CarlJ 2012-02-06 13:32:39

+0

我已經導入了「JSON.h」而不是SBJSON – anjum 2012-02-06 13:35:19