将数组格式化为plist

时间:2010-06-26 21:44:38

标签: iphone json nsarray nsdictionary

我将JSON返回格式化并保存到plist中,如下所示:

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

我需要它具有以下格式:

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

我在保存数组时遗漏了一些东西,所以我可以在Root下面添加“Rows”,在Profile下添加“Item 0,etc”,有什么想法吗?

这是我的代码:

    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];

以下是测试中的测试符号:

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

1 个答案:

答案 0 :(得分:1)

  

所以我可以在Root

下添加“Rows”

使用rowsArray作为密钥@"Rows"的值创建一个NSDictionary。然后保存该字典而不是数组。

  配置文件

下的

和“Item 0,etc”

您必须为每个项目获取profile字典并手动将其转换为所需格式,然后将字典替换为结果数组。这不可能在一两行中完成,但它不应该太难。只需抓住字典的键,然后为每个键创建一个包含所需键/值对的新字典,然后将所有这些字符串添加到数组中。