我有一个来自服务的json,我需要更改一个obeject的值。
{
question = (
{
answer = (
{
Id = 1;
value = 1;
},
{
Id = 2;
value = 0;
}
);
},
.....
我使用该代码直接访问第二个“value”元素并将其设置为“true”
NSMutableDictionary * dict = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
NSMutableDictionary *preguntasDict = [[NSMutableDictionary alloc] init];
preguntasDict =[[[dict valueForKey:@"question"]mutableCopy];
NSMutableDictionary *answer = [[NSMutableDictionary alloc] init];
respuestasDict =[[[[preguntasDict valueForKey:@"answer"]objectAtIndex:0]objectAtIndex:1] mutableCopy];
[respuestasDict setObject:[NSNumber numberWithBool:true] forKey:@"value"];
它起作用:“respuestasDict”发生了变化,但是没有“dict”。
我的问题是:如何重建整本字典?或者可以直接访问嵌套对象并进行更改?
答案 0 :(得分:0)
请注意,perguntasDict
和respuestasDict
是您词典的可变副本,因此基本上您正在编辑dict
的副本。您需要直接访问dict
,如下所示:
NSArray *answers = dict[@"question"][@"answer"];
[answers firstObject][@"value"] = @(YES);
PS:做dict [@" question"]与[dict objectForKey:@"question"]
是一回事。此外,@(YES)
与[NSNumber numberWithBool:true]