2012-11-16 47 views
0

Im新的iOS世界,我在玩關於將數據從node.js服務器拉出來的玩法。我正在尋找一種方法來獲取像這樣的輸出:我建立和登錄的只是玩。將JSON轉換爲可用的NSDictionary

2012-11-16 10:18:31.244 Freshly[4952:11603] key: vendor, value: (
     "vendor_of_1", 
     "vendor_of_2", 
     "vendore_of_3", 
     "vendore_of_4" 
    ) 
    2012-11-16 10:18:31.245 Freshly[4952:11603] key: messages, value: (
     message1, 
     message2, 
     Message3, 
     message4 
    ) 

我可能做錯了,但我認爲這是填充單元格的基礎上想要命名供應商和消息在UItable中的最佳方式。

什麼IM脫下服務器是這樣的:

 [{"content":"Message close","vendor":{"name":"Starbucks","_id":"509f9148c154050200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509f9148c154050200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T11:41:36.752Z","end":"2012-11-11T12:01:36.752Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"509f9148c154050200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509f9148c154050200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T10:11:36.754Z","end":"2012-11-11T12:01:36.754Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"509f918ff89e240200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509f918ff89e240200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T11:42:47.828Z","end":"2012-11-11T12:02:47.828Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"509f918ff89e240200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509f918ff89e240200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T10:12:47.830Z","end":"2012-11-11T12:02:47.830Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"509fbb99c888e40200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509fbb99c888e40200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T14:42:09.939Z","end":"2012-11-11T15:02:09.939Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"509fbb99c888e40200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509fbb99c888e40200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T13:12:09.941Z","end":"2012-11-11T15:02:09.941Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"509fcafa4550af0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509fcafa4550af0200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T15:47:46.751Z","end":"2012-11-11T16:07:46.751Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"509fcafa4550af0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509fcafa4550af0200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T14:17:46.753Z","end":"2012-11-11T16:07:46.753Z"},"loc":[5,5]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"509ff452ed9fdd0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509ff452ed9fdd0200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T17:14:10.082Z","end":"2012-11-11T19:04:10.082Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"509ff452ed9fdd0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"509ff452ed9fdd0200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T18:44:10.080Z","end":"2012-11-11T19:04:10.080Z"},"loc":[22.27977,114.156715]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a004620deba40200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a004620deba40200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-11T19:52:42.412Z","end":"2012-11-11T20:12:42.412Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a004620deba40200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a004620deba40200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-11T18:22:42.413Z","end":"2012-11-11T20:12:42.413Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a39413be8c8b0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a39413be8c8b0200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-14T12:42:35.885Z","end":"2012-11-14T13:02:35.885Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a39413be8c8b0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a39413be8c8b0200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-14T11:12:35.894Z","end":"2012-11-14T13:02:35.894Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a3a59762628e0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3a59762628e0200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-14T13:57:19.647Z","end":"2012-11-14T14:17:19.647Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a3a59762628e0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3a59762628e0200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-14T12:27:19.649Z","end":"2012-11-14T14:17:19.649Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a3b5f7f8eb510200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3b5f7f8eb510200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-14T15:07:11.412Z","end":"2012-11-14T15:27:11.412Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a3b5f7f8eb510200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3b5f7f8eb510200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-14T13:37:11.413Z","end":"2012-11-14T15:27:11.413Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a3c514273d070200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3c514273d070200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-14T16:11:40.930Z","end":"2012-11-14T16:31:40.930Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a3c514273d070200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3c514273d070200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-14T14:41:40.932Z","end":"2012-11-14T16:31:40.932Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a3d5e7c947720200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3d5e7c947720200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-14T17:23:27.443Z","end":"2012-11-14T17:43:27.443Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a3d5e7c947720200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a3d5e7c947720200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-14T15:53:27.445Z","end":"2012-11-14T17:43:27.445Z"},"loc":[5,5]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a56aa80253600200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a56aa80253600200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-15T20:40:24.971Z","end":"2012-11-15T22:30:24.971Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a56aa80253600200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a56aa80253600200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-15T22:10:24.970Z","end":"2012-11-15T22:30:24.970Z"},"loc":[22.27977,114.156715]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a5860700033d0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a5860700033d0200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-16T00:07:11.060Z","end":"2012-11-16T00:27:11.060Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a5860700033d0200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a5860700033d0200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-15T22:37:11.067Z","end":"2012-11-16T00:27:11.067Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a5f96f43fc550200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a5f96f43fc550200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-16T08:19:35.698Z","end":"2012-11-16T08:39:35.698Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a5f96f43fc550200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a5f96f43fc550200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-16T06:49:35.700Z","end":"2012-11-16T08:39:35.700Z"},"loc":[5,5]},{"content":"Message close","vendor":{"name":"Starbucks","_id":"50a60a38959fc90200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a60a38959fc90200000002","__v":0,"tags":["Specials","Drink"],"lifespan":{"start":"2012-11-16T09:31:12.497Z","end":"2012-11-16T09:51:12.497Z"},"loc":[22.27977,114.156715]},{"content":"Message loin","vendor":{"name":"Starbucks","_id":"50a60a38959fc90200000001","__v":0,"loc":[22.27977,114.156715]},"_id":"50a60a38959fc90200000003","__v":0,"tags":["Food"],"lifespan":{"start":"2012-11-16T08:01:12.499Z","end":"2012-11-16T09:51:12.499Z"},"loc":[5,5]}] 

和IM分析是這樣的:

NSString *cachedPath = @"/Users/masonedwards/Documents/Developer/Freshly/Freshly/cached_data.txt"; 

    NSData *data = [NSData dataWithContentsOfURL:url]; 
    if (data){ 
     NSError *error; 
     self.updates = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
    NSLog(@"udpates %@", self.updates); 
    }else { 
     self.updates = [NSDictionary dictionaryWithContentsOfFile:cachedPath]; 
    } 
    NSLog(@"The Data is %@", self.updates); 

,並希望得到的細胞像這樣

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"updatesCell"; 
    UITableViewCell *cell = [self.updatesTV dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
    } 

    NSString *message = [self.updates objectForKey:@"content"]; 
    NSString *vendor = [[self.updates objectForKey:@"vendor"] objectAtIndex:indexPath.row]; 

    cell.textLabel.text = vendor; 
    cell.detailTextLabel.text = message; 

    return cell; 
} 

我可能是完全錯誤的第一個應用程序但任何形式的幫助都會很棒。

回答

0

嘗試下面的代碼希望它有幫助。

NSData *jsonData = [NSData dataWithContentsOfURL:url]; 


      NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error]; 

      self.allData= [jsonArray mutableCopy]; 

//Then Access All the data individually 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"updatesCell"; 
    UITableViewCell *cell = [self.updatesTV dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
    } 

NSString *message =[ [self.allData objectAtIndex:indexPath.row] objectForKey:@"content"]]; 
NSDictionary *jsonDictionary =[ [self.allData objectAtIndex:indexPath.row] objectForKey:@"vendor"]]; 

    NSString *vendor = [jsonDictionary objectForKey:@"name"]; 

    cell.textLabel.text = vendor; 
    cell.detailTextLabel.text = message; 

    return cell; 
}