SBJSON使用遇到的问题。。。

最近做项目遇到了一个SBJSON三方库的问题,就是做网络请求时,需要将带参数的字典转换成字符串,由于是这一块是迁移的代码,故刚开始使用的是SBJSON三方库中的NSObject+SBJSON这个分类的方法:

- (NSString *)JSONRepresentation {
    SBJsonWriter *jsonWriter = [SBJsonWriter new];    
    NSString *json = [jsonWriter stringWithObject:self];
    if (!json){
        NSLog(@"-JSONRepresentation failed. Error trace is: %@", [jsonWriter errorTrace]);
    }
    [jsonWriter release];
    return json;
}

网络请求时字典数据转换成字符串的代码:

NSMutableDictionary *param = [NSMutableDictionary dictionaryWithDictionary];
[param setValue:@"" forKey:@""];
NSDictionary *jsonDict = @{@"data":@[param]};
@{@"jsonData":[jsonDict JSONRepresentation]}

遇到的问题:就是使用POST请求提交数据时,第一次提交没问题,第二次提交时同样的过程,确发生了崩溃出现在了SBJSON三方库中,由于项目比较赶,所给的解决问题的时间并不是太充裕,查了一下资料,就使用系统API中的NSJSONSerialization 这个类来将字典数据转换成了字符串。

NSMutableDictionary *param = [NSMutableDictionary dictionaryWithDictionary];

[param setValue:@"" forKey:@""];

NSDictionary *jsonDict = @{@"data":@[param]};

NSError *parseError = nil;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:&parseError];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

@{@"jsonData":jsonString]};

猜你喜欢

转载自blog.csdn.net/freetourw/article/details/78774188