我們可以寫一個分類來方便我們在項目中的使用。
頭文件
#import <Foundation/Foundation.h>
@interface NSObject (JSONTool)
/**
* 對象轉(zhuǎn)換為JSONData
*
* @return NSData
*/
- (nullable NSData *)JSONData;
/**
* 對象轉(zhuǎn)換為JSONString
*
* @return NSString
*/
- (nullable NSString *)JSONString;
/**
* 將JSONString轉(zhuǎn)換為對象
*
* @param jsonString json字符串
*
* @return 對象
*/
+ (nullable id)objectFromJSONString:(nullable NSString *)jsonString;
/**
* 將JSONString轉(zhuǎn)換為對象
*
* @param jsonString json字符串
*
* @return 對象
*/
+ (nullable id)objectFromJSONData:(nullable NSData *)jsonData;
@end
實現(xiàn)文件
#import "NSObject+JSONTool.h"
@implementation NSObject (JSONTool)
- (NSData *)JSONData{
return [NSJSONSerialization dataWithJSONObject:self options:0 error:nil];
}
- (NSString *)JSONString{
if (![NSJSONSerialization isValidJSONObject:self]) {
return @"";
}
return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil] encoding:NSUTF8StringEncoding];
}
+ (id)objectFromJSONString:(NSString *)jsonString{
return [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
}
+ (nullable id)objectFromJSONData:(nullable NSData *)jsonData{
return [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
}
@end
這樣我們就可以很方便的使用轉(zhuǎn)換了,是不是很簡單呢?
注:相關(guān)內(nèi)容我會繼續(xù)更新。如果想找一些iOS方面的代碼可以關(guān)注我的簡書,我會持續(xù)更新,大家一起探討探討
在此謝謝大家閱讀??