您的位置:首页 > Web前端 > JavaScript

JSON和OC之间对象的转换

2015-05-13 16:24 134 查看
//网络请求数据一般都返回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