Ios JSON将NSString与NSDictionary匹配

Ios JSON将NSString与NSDictionary匹配,ios,iphone,objective-c,json,uitableview,Ios,Iphone,Objective C,Json,Uitableview,我正在尝试匹配我在preparedtoseg期间从另一个UITableView获得的JSON NSString,以匹配两组JSON包含相同密钥的nid。 我想要的是让这个UITableView只显示匹配的nid内容。 我将从第二个UITableView发布两组JSON和代码。请帮帮我,伙计们 这是第一套myJSON [ { node_title: "Fumi", nid: "9", Body: "<p>Fumi Restaurant</p> ", Shop Branch

我正在尝试匹配我在preparedtoseg期间从另一个UITableView获得的JSON NSString,以匹配两组JSON包含相同密钥的nid。 我想要的是让这个UITableView只显示匹配的nid内容。 我将从第二个UITableView发布两组JSON和代码。请帮帮我,伙计们

这是第一套myJSON

[
{
node_title: "Fumi",
nid: "9",
Body: "<p>Fumi Restaurant</p> ",
Shop Branch Reference: "8",
Shop Enterprise Reference: "<a href="/drupal/node/7">Fumi</a>",
Shop Service Time: [
"<div class="time-default"> Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday 10:00am - 8:00pm</div> "
],
Shop User Reference: "<a href="/drupal/user/12">suppae</a>"
},
{
node_title: "Shop Number One",
nid: "3",
Body: "<p>This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one This is body for shop number one</p> ",
Shop Branch Reference: "2",
Shop Enterprise Reference: "<a href="/drupal/node/1">Fuji</a>",
Shop Service Time: [
"<div class="time-default"> Monday, Tuesday, Wednesday, Thursday, Friday 10:00am - 10:00pm</div> ",
"<div class="time-default"> Saturday, Sunday 9:00am - 10:00pm</div> "
],
Shop User Reference: "<a href="/drupal/user/9">testshop</a>"
}
]
现在,我设法实现了匹配以解决问题。
我现在的问题是,我需要在匹配后为我的json设置新值,以便可以在UITableview上填充它

这是我的密码

for(int i = 0; i < [_Json count]; i++) {
        NSString * match =[[_Json valueForKey:@"nid"]objectAtIndex:i];
        NSString * branch =[self.detail valueForKey:@"Shop Branch Reference"];
        if([match isEqualToString:branch]) {
            NSLog(@"Found ");
for(int i=0;i<[[u Json count];i++){
NSString*match=[[u Json valueForKey:@“nid”]对象索引:i];
NSString*branch=[self.detail valueForKey:@“店铺分行参考”];
if([匹配IsequalString:分支]){
NSLog(@“找到”);

非常感谢您的帮助。

首先,为了避免您的烦恼:如果您将块的开头{放在行的末尾,Xcode将很好地格式化它,而不会将代码放在屏幕的最右边

其次,您可以编写一个方法来执行所有处理,并从块中调用它,从而使代码更具可读性

第三,如果我有一个字典数组,并且想找到一个键/值对为“nid”的字典:“8”,我会写

for (NSDictionary* dict in array)
    if ([dict [@"nid"] isEqualToString:@"8"])
        NSLog (@"Found the dictionary!!!");

我通过使用for(int I=0;I<[[u json count];I++){NSString*match=[[u json valueForKey:@“nid”]objectAtIndex:I];NSString*branch=[self.detail valueForKey:@“Shop branch Reference”];if([match isEqualToString:branch]){NSLog(@“Found”);但是,现在我需要在匹配后设置新的json值,以便在我的UITableView上填充它们。您能帮助我解决当前问题吗?“我需要在匹配后为我的json设置新值,以便在UITableView上填充它”并不是对您的问题的很好描述——您想做什么???(首先,请记住,您不是在处理JSON,而是在处理NSArray和NSDictionary。要“修改”其中一个,要“设置”某些内容,它必须是“可变的”。因此,就我所知,您需要构建一个新的NSMutableArray,其中包含来自其他两个数组的组合值。)@HotLicks很抱歉描述不好,是的,你理解我的问题。基本上,根据我的两组JSON,我的第二个UITableView将只显示一个与nid和Shop Branch引用匹配的。感谢你的快速回复。因此,构建一个包含组合值的新NSMutableArray(作为新的NSMutableDictionarys)。或使用现有NSJSONSerialization调用上的选项返回“可变容器”,并使用另一个数组的信息修改其中一个数组。
for (NSDictionary* dict in array)
    if ([dict [@"nid"] isEqualToString:@"8"])
        NSLog (@"Found the dictionary!!!");