"-6ren"> "-我从restkit 得到的JSON 响应中有一个奇怪的错误。 我向服务器发出一个 post 请求,它响应 "someVal" = ""而不是 "someVal" = null 。这导致 xcode 以-6ren">
gpt4 book ai didi

ios - RestKit 从 JSON 响应返回 null 值 ""

转载 作者:行者123 更新时间:2023-11-29 04:12:55 24 4
gpt4 key购买 nike

我从restkit 得到的JSON 响应中有一个奇怪的错误。

我向服务器发出一个 post 请求,它响应 "someVal" = "<null>"而不是 "someVal" = null 。这导致 xcode 以一种非常奇怪的方式处理它,并且我似乎无法将它保存到 NSUserDefaults 因为它......我无法像正常的 null 值一样删除它......它会被检测为什么?我想也许是一根绳子?但是不……由于某种原因它无法将其保存为字符串。

最佳答案

我认为这个问题不仅仅限于 RestKit。来自为您提供 JSON 的服务器的更多信息。我在使用 AFNetworking 时也遇到了同样的问题。

我发现了这个字典类别,您可以使用它来删除空值并用空字符串替换。您可以使用它或直接删除逻辑来对空值进行排序。

@implementation NSDictionary (JRAdditions)

- (NSDictionary *) dictionaryByReplacingNullsWithStrings {

NSMutableDictionary *replaced = [NSMutableDictionary dictionaryWithDictionary:self];
const id nul = [NSNull null];
const NSString *blank = @"";

for(NSString *key in self) {
const id object = [self objectForKey:key];
if(object == nul) {
//pointer comparison is way faster than -isKindOfClass:
//since [NSNull null] is a singleton, they'll all point to the same
//location in memory.
[replaced setObject:blank forKey:key];
}
}
return [NSDictionary dictionaryWithDictionary:replaced];
}

+ (NSDictionary *)dictionaryByReplacingNullsWithStrings:(NSDictionary *)dict {
NSMutableDictionary *replaced = [NSMutableDictionary dictionaryWithDictionary:dict];
const id nul = [NSNull null];
const NSString *blank = @"";

for(NSString *key in dict) {
const id object = [dict objectForKey:key];
if(object == nul) {
//pointer comparison is way faster than -isKindOfClass:
//since [NSNull null] is a singleton, they'll all point to the same
//location in memory.
[replaced setObject:blank forKey:key];
}
}
return [NSDictionary dictionaryWithDictionary:replaced];
}

@end

// you can use this category on your dictionaries.
NSDictionary *jsonDict = JSON;
jsondict = [jsonDict dictionaryByReplacingNullsWithStrings];

关于ios - RestKit 从 JSON 响应返回 null 值 "<null>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150298/

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