2010-06-26 3 views
0

У меня есть возвращение JSON форматируемого и сохраненную в PLIST, он выглядит следующим образом:форматирования массива в PLIST

alt text http://www.baublet.com/images/array3.png

Мне это нужно иметь следующий формат:

alt text http://www.baublet.com/images/array4.png

Мне не хватает чего-то в сохранении массива, поэтому я могу добавить «Строки» ниже Корня и «Пункт 0 и т. Д.» Под профилем, любые идеи?

Вот мой код:

NSURL *url = [NSURL URLWithString:@"http://10.0.1.8/~imac/iphone/jsontest.php"]; 
    NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; 

    NSLog(jsonreturn); // Look at the console and you can see what the results are 


SBJSON *json = [[SBJSON alloc] init]; 
NSError *error = nil; 
rowsArray= [json objectWithString:jsonreturn error:&error]; 
//ADDED from COMMENT AS TEST 

test = [rowsArray valueForKey:@"member"]; 

//Saving 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *choiceR = [documentsDirectory stringByAppendingPathComponent:@"FollowingArray"]; 
NSMutableArray *array = [[NSMutableArray alloc] init]; 

NSLog(@"string: %@",choiceR); 

[array addObject:rowsArray]; 
[array writeToFile:choiceR atomically:YES]; 
[array release]; 

[jsonreturn release]; 
[json release]; 

Вот тест PLIST из теста:

alt text http://www.baublet.com/images/array5.png

ответ

1

так что я могу добавить "Ряды" под корень

Создайте NSDictionary с rowsArray в качестве значения для ключа @"Rows". Затем сохраните этот словарь вместо массива.

и «Пункт 0, и т.д.» в профиле

Вы должны захватить profile словарь для каждого элемента и вручную преобразовать его в нужный формат, а затем заменить словарь с результирующее массив. Это ничто не может быть сделано в одной или двух строках, но это не должно быть слишком сложно. Просто возьмите ключи словаря и для каждого из них создайте новый словарь с нужной парой ключ/значение, а затем добавьте все эти dicts в массив.

+0

Я добавил это и опубликовал результаты в нижней части моего вопроса. test = [rowsArray valueForKey: @ "member"]; Он избавляется от одного уровня, но не подставляет Item O «Rows», идеи? Спасибо за ваше время. Я новичок, любые хорошие идеи, где можно найти хорошую информацию об этих вложенных массивах? –

+0

Оказывается, я сохранил его как массив вместо словаря. Это касается 1-го уровня, я не уверен, как сделать вторую часть, «Пункт 0», –

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