2011-12-07 28 views
0

它只为NSMutableDictionary输出一个集合。我想使用NSMutableDictionary(JSONRepresentation)创建一个JSON请求。NSMutableDictionary没有得到预期的输出。

// My code  

NSArray *keysEndpoint = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil]; 
NSArray *objectEndpoint = [NSArray arrayWithObjects:@"622", @"Brand", @"0", nil]; 

NSArray *keysEndpoint1 = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil]; 
NSArray *objectEndpoint1 = [NSArray arrayWithObjects:@"595", @"CK-05052011", @"1", nil]; 

NSMutableArray *keys1 = [[NSMutableArray alloc] initWithCapacity:0]; 
NSMutableArray *objects1 = [[NSMutableArray alloc] initWithCapacity:0]; 

[keys1 addObjectsFromArray:keysEndpoint]; 
[keys1 addObjectsFromArray:keysEndpoint1]; 

NSLog(@"Key Dic: %@", keys1); 

[objects1 addObjectsFromArray:objectEndpoint]; 
[objects1 addObjectsFromArray:objectEndpoint1]; 

NSLog(@"Obje Dic: %@", objects1); 

NSMutableDictionary *testMut = [NSMutableDictionary dictionaryWithObjects:objects1 forKeys:keys1]; 

NSLog(@"Test Dic: %@", testMut); 

输出是我得到的是这样的:

Test Dic: { 
    EndpointType = 1; 
    ID = 595; 
    Name = "CK-05052011"; 
} 

Expexted输出我想要的是:

Test Dic: { 
    EndpointType = 1; 
    ID = 595; 
    Name = "CK-05052011"; 
} 
{ 
    EndpointType = 0; 
    ID = 622; 
    Name = "Brand"; 
} 

回答

1

对于一本字典,将相同的键两次将覆盖第一组键。你应该的NSMutableDictionary的NSMutableArray的

NSArray *keysEndpoint = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil]; 
NSArray *objectEndpoint = [NSArray arrayWithObjects:@"622", @"Brand", @"0", nil]; 

NSArray *keysEndpoint1 = [NSArray arrayWithObjects:@"ID", @"Name", @"EndpointType", nil]; 
NSArray *objectEndpoint1 = [NSArray arrayWithObjects:@"595", @"CK-05052011", @"1", nil]; 

NSMutableDictionary *testMut = [NSMutableDictionary dictionaryWithObjects:objectsEndpoint forKeys:keysEndpoint]; 


NSMutableDictionary *testMut1 = [NSMutableDictionary dictionaryWithObjects:objectsEndpoint1 forKeys:keysEndpoint1]; 

NSMutableArray * dictArray = [NSMutableArray arrayWithObjects:testMut,testMut1,nil]; 

NSLog(@"Test DictArray: %@", dictArray); 
+0

谢谢你,这个工程篦,但问题是,我有超过20阵列的关键点和目标端点。我无法创建20个NSMutableDictionary。有没有办法以编程方式做到这一点? – AAV

+0

@AmitVyawahare你从哪里获得关键点和对象端点数据?动态填充这些数据显然是可能的。为了将数据转换为json对象,可以在SO上查找SBJson或JSONKit的示例。 –

相关问题