gpt4 book ai didi

ios - 用 JSON 响应中的空字符串替换 null 在 iOS 中不起作用

转载 作者:行者123 更新时间:2023-11-28 21:55:32 24 4
gpt4 key购买 nike

我使用下面的代码将 json 响应中的空值替换为空字符串,但它不起作用。请帮我解决这个问题,在很多情况下和应用程序崩溃时,我从服务器响应中得到空值。

代码:

- (NSMutableDictionary *)recursive:(NSMutableDictionary *)dictionaryResponse {

NSMutableDictionary *dictionary=[[NSMutableDictionary alloc]initWithDictionary:dictionaryResponse];
for (NSString *key in [dictionary allKeys]) {
id nullString = [dictionary objectForKey:key];
if ([nullString isKindOfClass:[NSDictionary class]]) {
[self recursive:(NSMutableDictionary*)nullString];
}else if([nullString isKindOfClass:[NSArray class]]){
for (int i=0; i<[nullString count]; i++) {
id nullstr = [nullString objectAtIndex:i];

if ([nullstr isKindOfClass:[NSDictionary class]]) {
[self recursive:(NSMutableDictionary*)nullstr];

}

}
}else {
if ((NSString*)nullString == (id)[NSNull null])
[dictionary setValue:@"" forKey:key];
}
}
return dictionary;
}

最佳答案

试试这个:

- (NSMutableDictionary *)recursiveNullRemove:(NSMutableDictionary *)dictionaryResponse {

NSMutableDictionary *dictionary = [dictionaryResponse mutableCopy];
NSString *nullString = @"";
for (NSString *key in [dictionary allKeys]) {
id value = dictionary[key];

if ([value isKindOfClass:[NSDictionary class]]) {

dictionary[key] = [self recursiveNullRemove:(NSMutableDictionary*)value];

}else if([value isKindOfClass:[NSArray class]]){

NSMutableArray *newArray = [value mutableCopy];
for (int i = 0; i < [value count]; ++i) {

id value2 = [value objectAtIndex:i];

if ([value2 isKindOfClass:[NSDictionary class]]) {
newArray[i] = [self recursiveNullRemove:(NSMutableDictionary*)value2];
}
else if ([value2 isKindOfClass:[NSNull class]]){
newArray[i] = nullString;
}
}
dictionary[key] = newArray;
}else if ([value isKindOfClass:[NSNull class]]){
dictionary[key] = nullString;
}
}
return dictionary;
}

已编辑:

我在我的答案中找到了问题,现在它已修复

这是校验码:

NSDictionary *dict = @{@"1" : @{@"1.1": @"value", @"1.2" : [NSNull null]},
@"2" : @[@"2.1", @{@"2.2.1" : @"val", @"2.2.2" : [NSNull null]}],
@"3" : [NSNull null]};

dict = [self recursiveNullRemove:dict];

关于ios - 用 JSON 响应中的空字符串替换 null 在 iOS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com