iOS- 對服務端報文的處理

#import@interface NSObject (JsonWriting)

- (NSString *)JSONRepresentation;

- (id)JSONValue;

@end



#import "NSObject+JsonWriting.h"

@implementation NSObject (JsonWriting)

- (NSString *)JSONRepresentation

{

NSString *str;

if ([NSJSONSerialization isValidJSONObject:self])

{

NSError *err;

NSData *strData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&err];

str = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];

}

return str;

}

- (id)JSONValue

{

//處理報文

NSError *err;

//判斷是否為json字符串

if ([self isKindOfClass:[NSString class]])

{

NSString *jsonstr = (NSString*)self;

NSString *containString = @":";

NSRange range = [jsonstr rangeOfString:containString];

if (range.location == NSNotFound || [self strNilOrEmpty:jsonstr])

{

return nil;

}

}

else

{

NSString *jsonstr = [[NSString alloc]initWithData:(NSData *)self encoding:NSUTF8StringEncoding];

NSString *containString = @":";

NSRange range = [jsonstr rangeOfString:containString];

if (range.location == NSNotFound || [self strNilOrEmpty:jsonstr])

{

return nil;

}

}

if ([self isKindOfClass:[NSString class]])

{

NSString *jsonstr = (NSString*)self;

NSData *data = [jsonstr dataUsingEncoding:NSUTF8StringEncoding];

id dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];

return dict;

}

id dict = [NSJSONSerialization JSONObjectWithData:(NSData *)self options:NSJSONReadingAllowFragments error:&err];

return dict;

}

-(BOOL)strNilOrEmpty:(NSString *)string{

if ([string isKindOfClass:[NSString class]]) {

if (string.length > 0) {

return NO;

}

else {

return YES;

}

}

else {

return YES;

}

}

@end

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、禁止手機睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,144評論 1 6
  • 1、設置UILabel行間距 NSMutableAttributedString* attrString = [[...
    十年一品溫如言1008閱讀 1,720評論 0 3
  • *7月8日上午 N:Block :跟一個函數塊差不多,會對里面所有的內容的引用計數+1,想要解決就用__block...
    炙冰閱讀 2,547評論 1 14
  • iOS開發系列--網絡開發 概覽 大部分應用程序都或多或少會牽扯到網絡開發,例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 3,721評論 2 7
  • 周末,和家人一起到了臺兒莊古城,下午去的,晚上留宿一晚。剛到下榻的酒店,臨近窗口便可以聽見聲聲非洲鼓的聲音,和那首...
    李聘2023閱讀 247評論 0 1