//网络请求数据一般都返回JSON,
//简单做了一个整理,
//JSON和OC对象之间的转换.
//使用方式,类名直接调用就可以.
//下面是.h文件
//</span>
@interface JYJSON : NSObject
/*
NSJSONReadingMutableContainers:
返回可变容器,
NSMutableDictionary或NSMutableArray。
*/
/*
NSJSONReadingMutableLeaves:
返回的JSON对象中字符串的值为NSMutableString,
目前在iOS 7上测试不好用,应该是个bug
*/
/*
NSJSONReadingAllowFragments:
允许JSON字符串最外层既不是NSArray也不是NSDictionary,
但必须是有效的JSON Fragment。
例如使用这个选项可以解析 @“123”这样的字符串。
*/
/*
*将字典或者数组转换为JSON格式字符串
@return JSON格式字符串
*/
+ (NSString *)JSONStringWithDictionaryOrArray:(id)dictionaryOrArray;
/*
* 将字典或者数组转换为JSON的Data
@return JSON的Data
*/
+ (NSData *)JSONSDataWithDictionaryOrArray:(id)dictionaryOrArray;
/*
* 将JSON格式字符串转换为字典或者数组
@return 字典或者数组
*/
+ (id)dictionaryOrArrayWithJSONSString:(NSString *)jsonString;
/*
* 将JSON的Data转换为字典或者数组
@return 字典或者数组
*/
+ (id)dictionaryOrArrayWithJSONSData:(NSData *)jsonData;
/*
* 将Data转换为UTF-8格式的字符串
@return 字符串
*/
+(NSString *)stringWithForamtUTF8FromData:(NSData *)data;
/*
* 将NSString转换为NSData
@return NSData
*/
+(NSData *)dataWithJSONString:(NSString *)str;
@end
//下面是.m文件
//
#import "JYJSON.h"
@implementation JYJSON
+ (NSString *)JSONStringWithDictionaryOrArray:(id)dictionaryOrArray
{
if (dictionaryOrArray ==nil){
return nil;
}
NSData *data = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayoptions:NSJSONWritingPrettyPrintederror:nil];
if (data ==nil)
{
return nil;
}
NSString *string = [[NSString alloc] initWithData:dataencoding:NSUTF8StringEncoding];
return string;
}
+ (NSData *)JSONSDataWithDictionaryOrArray:(id)dictionaryOrArray
{
if (dictionaryOrArray ==nil)
{
return nil;
}
NSData *data = [NSJSONSerialization dataWithJSONObject:dictionaryOrArrayoptions:NSJSONWritingPrettyPrintederror:nil];
return data;
}
+ (id)dictionaryOrArrayWithJSONSString:(NSString *)jsonString
{
if (jsonString ==nil)
{
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
return [NSJSONSerializationJSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves|NSJSONReadingMutableContainers error:nil];
}
+ (id)dictionaryOrArrayWithJSONSData:(NSData *)jsonData
{
if (jsonData ==nil)
{
return nil;
}
return [NSJSONSerializationJSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves|NSJSONReadingMutableContainers error:nil];
}
+(NSString *)stringWithForamtUTF8FromData:(NSData *)data
{
if (data ==nil)
{
return nil;
}
NSString *str = [[NSString alloc] initWithData:dataencoding:NSUTF8StringEncoding];
return str;
}
+(NSData *)dataWithJSONString:(NSString *)str
{
if (str ==nil)
{
return nil;
}
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
return data;
}
@end
JSON和OC之间对象的转换
最新推荐文章于 2024-08-17 23:14:52 发布