聲明: 此方法只是簡(jiǎn)單的利用ios 自帶的JSON 工具,對(duì)其進(jìn)行封裝。
1. 新建文件 JSONTools.h ,并聲明如下文件:
#import
@interfaceJSONTools :NSObject
+ (NSString*)dictToJsonString:(NSDictionary*)dict;
+ (NSDictionary*)parseJsonFromStringOrObject:(NSString*)data;
@end
2. ?在 JSONTools.m 文件中的實(shí)現(xiàn)如下方法:
#import "JSONTools.h"
@implementation JSONTools
+ (NSString *)dictToJsonString:(NSDictionary *)dict
{
NSString *jsonStr = @"數(shù)據(jù)異常,無法轉(zhuǎn)成JSON";
BOOL isValidJson =? [NSJSONSerialization isValidJSONObject:dict]; // 校驗(yàn)是否是json
if (isValidJson) {
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
jsonStr = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
}
return jsonStr;
}
// 將JSON轉(zhuǎn)成對(duì)象
+ (NSDictionary *)parseJsonFromStringOrObject:(NSString *)data
{
NSData *newData = [data dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSDictionary? * dict = [NSJSONSerialization JSONObjectWithData:newData options:NSJSONReadingAllowFragments error:nil];
return? dict;
}
@end
3. 測(cè)試使用方法:
#import "JSONTools.h" ?// 引入文件(第一步)
AFHTTPRequestOperationManager*manager =[AFHTTPRequestOperationManagermanager];// 網(wǎng)絡(luò)請(qǐng)求代碼[manager.securityPolicysetAllowInvalidCertificates:YES];//忽略https證書[manager.securityPolicysetValidatesDomainName:NO];//是否驗(yàn)證域名// manager.requestSerializer = [AFJSONRequestSerializer serializer];//設(shè)置請(qǐng)求格式manager.responseSerializer= [AFHTTPResponseSerializerserializer];//設(shè)置返回格式manager.responseSerializer.acceptableContentTypes= [manager.responseSerializer.acceptableContentTypessetByAddingObject:@"text/html"];[manager.requestSerializersetValue:[selfgenerateUserAgent]forHTTPHeaderField:@"User-Agent"];
[managerPOST: @"http://www.baidu.com" parameters:nil success:^(AFHTTPRequestOperation*_Nonnulloperation,id_NonnullresponseObject) {
NSString*jsonString = [[NSStringalloc]initWithData:responseObject
encoding:NSUTF8StringEncoding];
NSDictionary*dictJson =[JSONToolsparseJsonFromStringOrObject:jsonString];
NSLog("========dictJson===========",dictJson);
}
failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
}];