gpt4 book ai didi

iphone - 使用 NSJSONSerialization 将 NSMutableDictionary 转换为 JSON 返回不同的结果

转载 作者:行者123 更新时间:2023-11-29 03:43:45 24 4
gpt4 key购买 nike

当我尝试使用 NSJSONSerializationNSMutableDictionary 转换为 JSON 时,它返回不同的结果:

代码:

-(NSString*)JSONRepresentation{

return [self JSONRepresentation:NO];
}

-(NSString*)JSONRepresentation:(BOOL)whiteSpaces{

NSError* error = nil;
NSData * result = nil;

if(whiteSpaces)
result = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error];
else
result = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:&error];

if (error != nil){
NSLog(@"Error:%@",error);
return nil;
}

return [NSString stringWithUTF8String:[result bytes]];
}

这就是我的使用方式:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"xxx" forKey:@"experiment"];

NSLog(@"(%@)", [dict JSONRepresentation]);

连续尝试的结果:

2013-08-01 12:31:45.066 Hercules Demo[8763:c07] ((null))
2013-08-01 12:31:49.988 Hercules Demo[8763:c07] ((null))
2013-08-01 12:31:52.838 Hercules Demo[8763:c07] ({"experiment":"xxx"})
2013-08-01 12:31:59.432 Hercules Demo[8763:c07] ({"experiment":"xxx"})
2013-08-01 12:32:03.160 Hercules Demo[8763:c07] ((null))
2013-08-01 12:32:06.232 Hercules Demo[8763:c07] ({"experiment":"xxx"})
2013-08-01 12:32:08.395 Hercules Demo[8763:c07] ((null))

最佳答案

dataWithJSONObject方法返回 NSData ,所以我建议:

  1. 转换 NSData进入NSString ,你应该使用initWithData而不是stringWithUTF8String 。所以,而不是:

    return [NSString stringWithUTF8String:[result bytes]];

    你应该这样做:

    return [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];
  2. 为了清楚起见,您可能应该定义 result成为NSData *而不是id .

关于iphone - 使用 NSJSONSerialization 将 NSMutableDictionary 转换为 JSON 返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003540/

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