2014-01-19 29 views
-1

目前我通過原生Objective-C代碼填寫在我的數組直接:分析JSON表到NSMutableArray的

Datas *pan1 = [[Datas alloc] initWithTitle:@"My array 1" title:@"Shakespeare's Book" location:@"London"]; 
Datas *pan2 = [[Datas alloc] initWithTitle:@"My array 2" title:@"Moliere's Book" location:@"London"]; 


    NSMutableArray *datasListe = [NSMutableArray arrayWithObjects:pan1, pan2, nil]; 

但我想通過此JSON列表來填補這一NSMutableArray中:

{ 
    "myIndex" : [ 
       { 
       "name":"My array 1", 
       "title": "Shakespeare's Book", 
       "location": "London" 
       }, 
       { 
       "name":"My Array 2", 
       "title": "Moliere's Book", 
       "location": "Paris" 
       } 
       ] 
} 

任何人有想法嗎?非常感謝!

+3

那你嘗試做這麼遠嗎? – Wain

+2

你擁有的是一個「對象」(字典),其中包含一個名爲「myIndex」的條目幷包含多個「對象」的數組。請參閱json.org以瞭解語法。使用NSJSONSerialization轉換爲Objective-C對象。 –

+0

此刻我可以顯示整個Json數據。我知道如何從「標題」中獲取數據作爲例證。但是我無法獲得所有的「標題」數據並將它們放入數組 –

回答

1

這個json數據可以像這樣很容易解析。

NSError *e; 
NSArray *dic= [NSJSONSerialization JSONObjectWithData: jsondata options: NSJSONReadingMutableContainers error: &e]; 
NSMutableArray *datasListe = [[NSMutableArray alloc] init]; 
NSMutableArray *data = [dic objectForKey:@"myIndex"]; 
//Now you have array of dictionaries 
for(NSDictionary *dataDic in data){ 
NSString *name = [dataDic objectForkey:@"name"]; 
NSString *title = [dataDic [email protected]"title"]; 
NSString *location = [dataDic [email protected]"location"]; 
Datas *pan= [[Datas alloc] initWithTitle:name title:title location:location]; 
[dataList addObject:pan]; 
} 
+0

它的效果很好,謝謝 –

+0

不客氣,如果您正在發生問題,您可以接受它作爲答案:P –

1
NSDictionary *firstDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"Raja", @"name", 
          @"Developer", @"title", 
          @"USA", @"location", 
          nil]; 

    NSDictionary *secondDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"Deepika", @"name", 
          @"Engieer", @"title", 
          @"USA", @"location", 
          nil]; 

NSMutableArray * arr = [[NSMutableArray alloc] init]; 

[arr addObject:firstDictionary]; 
[arr addObject:secondDictionary]; 

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding]; 
NSLog(@"jsonArray as string:\n%@", jsonString); 
+0

我的印象是他想以另一種方式 - 他擁有JSON並希望提取數據。 –