2011-05-18 4 views
0

je la valeur JSON suivante:Comment stocker des valeurs de JSON dans MATRICE/String

-(
      { Key = IsEmail; 
       Value = 1;  }, 

      { Key = TrackingInterval; 
       Value = 20; }, 

      { Key = IsBackup; 
       Value = 1;  }, 

      { Key = WipeOnRestore; 
       Value = 1;  } 
) 

Comment pourrais-je aller sur l'analyse de cet objet dans un tableau ou une chaîne? - c'est-à-dire clé valeurs à stocker dans une matrice et chaque valeur à stocker dans un autre tableau.

S'il vous plaît aidez-moi avec ceci.

Merci :)

Répondre

4

Cette approche utilise le json-framework.

J'ai écourté votre exemple:

NSString *jsonString = @"[{\"Key\":\"IsEmail\",\"Value\":\"1\"},{\"Key\":\"TrackingInterval\",\"Value\":\"20\"},{\"Key\":\"IsBackup\",\"Value\":\"1\"}]"; 

NSMutableArray *keys = [NSMutableArray array]; 
NSMutableArray *values = [NSMutableArray array];  

NSArray *json = [jsonString JSONValue]; 

for (NSDictionary *pair in json) { 
    [keys addObject:[pair objectForKey:@"Key"]]; 
    [values addObject:[pair objectForKey:@"Value"]];   
} 

NSLog(@"%@", keys); 
NSLog(@"%@", values); 

Sortie:

2011-05-18 14:23:55.698 [36736:207] (
    IsEmail, 
    TrackingInterval, 
    IsBackup 
) 
2011-05-18 14:23:55.700 [36736:207] (
    1, 
    20, 
    1 
) 
+0

Pourquoi avez-vous utilisé deux tableaux distincts au lieu d'utiliser un dictionnaire? – FreeAsInBeer

+0

@FreeAsInBeer parce que le PO l'a demandé: "... eack valeurs de clé à stocker dans un tableau et chaque valeur à stocker dans un autre tableau." –

+0

=) Nice. Je n'ai pas lu la fin de sa question. C'est une façon très étrange de le stocker. En général, mon expérience m'a montré que vous ne voulez pas stocker des informations connexes dans des objets séparés sans un bon lien entre eux. Dans ce cas, le seul lien est l'index, qui pourrait facilement se foirer. – FreeAsInBeer

0

Vos données ne sont pas vald JSON, vous pouvez vouloir structurer plus comme ceci:

var theObj = { IsEmail: 1, TrackingInterval: 20, IsBackup: 1, WipeOnRestore: 1 }; 

Ensuite, vous pouvez remplir vos tableaux de clés et de valeur quelque chose comme ceci:

var keys = new Array(); 
var values = new Array(); 

for (prop in theObj) { 
    keys.push(prop); 
    values.push(theObj[prop]); 
} 
0

si le JSON est en dessous de format

responseString=[ { 
     Key = IsEmail; 
     Value = 1; 
    }, 
      { 
     Key = TrackingInterval; 
     Value = 20; 
    }, 
      { 
     Key = IsBackup; 
     Value = 1; 
    }, 
      { 
     Key = WipeOnRestore; 
     Value = 1; 
    }] 

then, 

NSArray *resultArray=[responseSrting JSONValue]; 

NSMuatbleArray *keyArray=[[NSMutableArray alloc] init]; 

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

for(NSDictionary *dict in resultsArray){ 

[keyArray addObject:[dict objectForKey:@"Key"]]; 

[valueArray addObject:[dict objectForKey:@"Value"]]; 

} 

puis, toutes vos clés sont stockées dans keyArray et toutes vos valeurs sont stockées dans valueArray

Questions connexes