从键为空字符串的 NSDictionary 中删除值
Delete Values from NSDictionary for which Key is Empty String
我收到 JSON 这样的回复:
{
"partner_wise": {
“partner1”: {
"processing": 254,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
},
"": {
"processing": 0,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
},
"partner2": {
"processing": 0,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
}
}
}
我在 tableView 中按索引设置这些值。从这个 JSON 响应中,我不必显示键为空字符串的值。如何从 NSDictionary 中删除这个对象。
你可以利用removeObjectForKey
[dictionary removeObjectForKey:@""];
示例代码:
//your json dictionary here!
NSDictionary *finalDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"11111111",@"",@"00000000",@"testkey1", nil];
NSMutableDictionary *dictionaryColection = [[NSMutableDictionary alloc] initWithDictionary:finalDictionary];
NSLog(@"Dictionary Full: %@", dictionaryColection);
[dictionaryColection removeObjectForKey:@""];
finalDictionary = dictionaryColection;
NSLog(@"Final dictionary removed: %@", finalDictionary);
日志:
Dictionary Full: {
"" = 11111111;
testkey1 = 00000000;
}
Final dictionary removed: {
testkey1 = 00000000;
}
在swift3.0
dictionary.removeObject(forKey: "")
您不能从 NSDictionary 中删除这些对象。 NSDictionary 是一个不可变对象。
但是你可以制作一个可变副本并删除不需要的键:
//remove from mutable dictionary
NSDictionary* dictionary = [self getData];
NSMutableDictionary* mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@""];
self.data = mutableDictionary;
我收到 JSON 这样的回复:
{
"partner_wise": {
“partner1”: {
"processing": 254,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
},
"": {
"processing": 0,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
},
"partner2": {
"processing": 0,
"complete": 0,
"track_invoice": 0,
"bar_code": 0
}
}
}
我在 tableView 中按索引设置这些值。从这个 JSON 响应中,我不必显示键为空字符串的值。如何从 NSDictionary 中删除这个对象。
你可以利用removeObjectForKey
[dictionary removeObjectForKey:@""];
示例代码:
//your json dictionary here!
NSDictionary *finalDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"11111111",@"",@"00000000",@"testkey1", nil];
NSMutableDictionary *dictionaryColection = [[NSMutableDictionary alloc] initWithDictionary:finalDictionary];
NSLog(@"Dictionary Full: %@", dictionaryColection);
[dictionaryColection removeObjectForKey:@""];
finalDictionary = dictionaryColection;
NSLog(@"Final dictionary removed: %@", finalDictionary);
日志:
Dictionary Full: {
"" = 11111111;
testkey1 = 00000000;
}
Final dictionary removed: {
testkey1 = 00000000;
}
在swift3.0
dictionary.removeObject(forKey: "")
您不能从 NSDictionary 中删除这些对象。 NSDictionary 是一个不可变对象。
但是你可以制作一个可变副本并删除不需要的键:
//remove from mutable dictionary
NSDictionary* dictionary = [self getData];
NSMutableDictionary* mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@""];
self.data = mutableDictionary;