-1

У меня нет NSMutableArray массив, имеющий NSDictionary ключи, как:NSDictionary в NSMutableArray ИОС

NSMutableArray *[email protected][@{@"A":@{@"user":@"obj1",@"friend":@"obj2"}}]; 

Нет, я хочу, чтобы добавить объекты в этом NSMutableArray.

Мой код:

for (int i = 0; i < 10; i++) 
    { 
     NSString *user = @"A"+i; 
     for(int i=0;i<50;i++) { 
      NSString *friend1 = @"B"+i; 
NSString *friend2 = @"C"+i; 
NSString *friend3 = @"D"+i; 

     } 
    } 
     NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:nil]; 
    NSString *y= [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",y); 

Желаемая Выход:

{"A":[{"user":"A1","friend":"B1"},{"user":"A1","friend":"B2"},{"user":"A2","friend":"B1"}]} 

Как настроить свои объекты для того, чтобы достичь желаемых результатов.

+0

Невозможно создать шаблон строки, если это статический формат .. а затем использовать stringWithFormat для заполнения этого шаблона? вы можете выполнять итерацию через свой массив и добавлять значения к этому шаблону. –

+0

кажется интересным, пожалуйста, подтвердите свое предложение более подробно и кусок кода для понимания. @ Apple_iOS0304 – developer

+1

Маленький побочный элемент: '@ []' literal создает неизменяемый массив. Мне нравится использовать '[@ [] mutableCopy]' –

ответ

1
NSString* singleObjectTemplate = [NSString stringWithFormat:@"{\"user\" : \"%@\",\"friend\" : \"%@\"}", user, friend]; 
NSString* validJsonTemplate = [NSString stringWithFormat:@"{\"A\":[%@]}", singleObjectTemplate]; 

Нечто подобное. Вы можете изменить его согласно вашему требованию, чтобы добавить несколько записей.

Надеюсь, это поможет вам в некотором роде. Ура !! :)

EDIT:

Предположим, что вы хотите добавить 3 объекта к нему.

NSString *str = @""; 
for (int i = 0; i<3; i++) 
{ 
    NSString* singleObjectTemplate = [NSString stringWithFormat:@"{\"user\" : \"%@\",\"friend\" : \"%@\"}", user, friend]; 
    str = [str stringByAppendingString:singleObjectTemplate]; 

    if(i<2) 
     str = [str stringByAppendingString:@", "]; 
} 

NSString* validJsonTemplate = [NSString stringWithFormat:@"{\"A\":[%@]}", str]; 
+0

Как использовать 'validJsonTemplate' для цикла for для установки значений? – developer

+1

'NSString * validJsonTemplate = [NSString stringWithFormat: @" {"A": [% @]} ", str];' имеет синтаксическую ошибку – developer

+0

Спасибо, что указали это. Я просто исправил это. Приветствия! –

Смежные вопросы