2014-01-23 34 views
1

服務器如果一個對象是能夠發送,但如何動態使用JSON序列化和deserializtion發送對象的名單,並且創造modal.this應該是JSON字符串 [{「city_id 「:」 1" , 「STATE_NAME」: 「狀態1」},{ 「city_id」: 「1」, 「STATE_NAME」: 「22」}]。 要發送單個對象我的代碼如下如何通過郵寄對象名單對我們的動態

NSString *[email protected]"1"; 
NSString *[email protected]"state1"; 
NSArray *keys = [NSArray arrayWithObjects:@"city_id",@"state_name",nil]; 
NSArray *objects = [NSArray arrayWithObjects:cityId,statNam,nil]; 
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 


NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", jsonString); 
in NSLog my jsonString is {"city_id":"1","state_name":"state1"} 

回答

1

您需要遍歷您的收藏對象將其添加到另一個容器的可變然後把它作爲一個不可改變的集合NSJSONSerialization
我假設你的數據yourActualCollect名單是字典的數組。

NSMutableArray *yourDynamicModelArray = [NSMutableArray array]; 

    for(int indexNumber = 0; indexNumber < [yourActualCollect count]; indexNumber++){ 
     NSString *cityId = [[yourActualCollect objectAtIndex:indexNumber] [email protected]"city_id"]; 
     NSString *statNam = [[yourActualCollect objectAtIndex:indexNumber] [email protected]"state_name"];; 
     NSArray *keys = [NSArray arrayWithObjects:@"city_id",@"state_name",nil]; 
     NSArray *objects = [NSArray arrayWithObjects:cityId,statNam,nil]; 
     NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 
     [yourDynamicModelArray addObject:jsonDictionary]; 
    } 

    NSError *error; 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[NSArray arrayWithArray:yourDynamicModelArray] options:0 error:&error]; 
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", jsonString);