Похоже, что вам нужен здесь словарь, содержащий различные поля:
NSMutableDictionary *topDictionary = [[NSMutableDictionary alloc] init];
[topDictionary setObject:@"Test" forKey:@"name"];
[topDictionary setObject:@"1" forKey:@"version"];
...
Затем у вас есть массив контейнеров со словарем в каждом элементе массива:
NSMutableArray *containers = [[NSMutableArray alloc] init];
[topDictionary setObject:containers forKey:@"containers"];
NSMutableArray *arrayItem1 = [[NSMutableDictionary alloc] init];
[containers addObject:arrayItem1];
[arrayItem1 setObject:[NSNumber numberWithInteger:1] forKey:@"id"];
...
В каждом из словарей под контейнерами у вас есть массив триггеров, где каждый элемент этого массива является словарем:
NSMutableArray *triggers = [[NSMutableArray alloc] init];
[arrayItem1 setObject:triggers forKey:@"triggers"];
NSMutableArray *trigger1 = [[NSMutableDictionary alloc] init];
[triggers addObject:trigger1];
[trigger1 setObject:@"someClass" forKey:@"@class"];
...
Это просто показывает, как добавить 1 контейнер с 1 триггером в этом контейнере,Но ты получил идею.Преобразуйте в соответствующие циклы, если вы хотите поместить более одного элемента в каждый массив.
Когда у вас есть эти словари (внутри массива, внутри словаря, внутри массива, внутри словаря ...), вызатем есть объект, который можно сериализовать в JSON чисто.