2016-08-09 14 views
-1

Ich habe versucht, statische JSONArray Wert in IOS mit Objective-c
erstellen möchten Ich mag diesesWie kann ich NSDictionary mit mehreren Array von Schlüssel erstellen und den Wert

tabledata={ 
["name":"image 1","path":"img1.jpg"], 
["name":"image 2","path":"img2.jpg"], 
["name":"image 3","path":"img3.jpg"], 
["name":"image 4","path":"img4.jpg"], 
["name":"image 5","path":"img5.jpg"], 
["name":"image 6","path":"img6.jpg"], 
["name":"image 7","path":"img7.jpg"]} 

dies meine Daten ist .. bitte helfen Sie mir irgendeine, wie ich in Objective-c erklären kann ..

Antwort

1

Sie Wörterbuch erstellen wie unten

NSDictionary *dict = @{ 
     @"array": @[ 
      @{ 
       @"name":@"image 1", 
       @"path":@"img1.jpg" 
      }, 
      @{ 
       @"name":@"image 2", 
       @"path":@"img2.jpg" 
      } 
      .... 
     ] 
    }; 

und Array

NSArray *array = @[ 
      @{ 
       @"name":@"image 1", 
       @"path":@"img1.jpg" 
      }, 
      @{ 
       @"name":@"image 2", 
       @"path":@"img2.jpg" 
      } 
      .... 
     ]; 

Für get Wert von NSDictionary

NSArray *array = NSDictionary[@"array"] 
NSDictionary *firstObj = array[0]; 
NSString *name = firstObj[@"name"] 
NSString *path = firstObj[@"path"] 

von Array nur

NSDictionary *firstObj = array[0]; 
NSString *name = firstObj[@"name"] 
NSString *path = firstObj[@"path"] 
+0

Vielen Dank für Ihre Antwort ... –

+0

Sie sind willkommen, wenn meine Lösungen geeignet ist, markieren Sie bitte Ihre Frage beantwortet. Danke – iSashok

+0

Wie kann ich Wert von NSDictionary Array erhalten? –

0

Sie können JsonString zu NSDicitonary machen.

NSError *jsonError; 
NSData *objectData = [@"{\"2\":\"3\"}" dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData 
           options:NSJSONReadingMutableContainers 
            error:&jsonError]; 

und es ist machen NSDictionary mit Array.

- (NSDictionary *) indexKeyedDictionaryFromArray:(NSArray *)array 
{ 
    id objectInstance; 
    NSUInteger indexKey = 0U; 

    NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init]; 
    for (objectInstance in array) 
     [mutableDictionary setObject:objectInstance forKey:[NSNumber numberWithUnsignedInt:indexKey++]]; 

     return (NSDictionary *)[mutableDictionary autorelease]; 
} 
1

Einer der alternativen alten Konzept ist:

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

NSMutableDictionary * dict1 = [[NSMutableDictionary alloc] init]; 
[dict1 setValue:@"image 1" forKey:@"name"]; 
[dict1 setValue:@"img1.jpg" forKey:@"path"]; 

NSMutableDictionary * dict2 = [[NSMutableDictionary alloc] init]; 
[dict2 setValue:@"image 2" forKey:@"name"]; 
[dict2 setValue:@"img2.jpg" forKey:@"path"]; 

NSMutableDictionary * dict3 = [[NSMutableDictionary alloc] init]; 
[dict3 setValue:@"image 3" forKey:@"name"]; 
[dict3 setValue:@"img3.jpg" forKey:@"path"]; 

[tableData addObject:dict1]; 
[tableData addObject:dict2]; 
[tableData addObject:dict3]; 

NSLog(@"%@",tableData); 

//To Fetch Values 
NSDictionary *dictionary1 = [tableData objectAtIndex:0]; 
NSLog(@"%@", [dictionary1 valueForKey:@"name"]); 
+0

Vielen Dank für Ihre Antwort ... –