Model 转换成 nsdictionary
来源:互联网 发布:敦煌694kk真假 知乎 编辑:程序博客网 时间:2024/05/19 18:14
#import <Foundation/Foundation.h>
@interface PrintObject : NSObject
//通过对象返回一个NSDictionary,键是属性名称,值是属性值。
+ (NSDictionary*)getObjectData:(id)obj;
//将getObjectData方法返回的NSDictionary转化成JSON
+ (NSData*)getJSON:(id)obj options:(NSJSONWritingOptions)options error:(NSError**)error;
//直接通过NSLog输出getObjectData方法返回的NSDictionary
+ (void)print:(id)obj;
@end
#import "PrintObject.h"
#import <objc/runtime.h>
@implementation PrintObject
+ (NSDictionary*)getObjectData:(id)obj
{
NSMutableDictionary *dic = [NSMutableDictionarydictionary];
unsignedint propsCount;
objc_property_t *props =class_copyPropertyList([obj class], &propsCount);
for(int i =0;i < propsCount; i++)
{
objc_property_t prop = props[i];
NSString *propName = [NSStringstringWithUTF8String:property_getName(prop)];
id value = [objvalueForKey:propName];
if(value ==nil)
{
value = [NSNullnull];
}
else
{
value = [selfgetObjectInternal:value];
}
[dic setObject:valueforKey:propName];
}
return dic;
}
+ (void)print:(id)obj
{
NSLog(@"%@", [selfgetObjectData:obj]);
}
+ (NSData*)getJSON:(id)obj options:(NSJSONWritingOptions)options error:(NSError**)error
{
return [NSJSONSerializationdataWithJSONObject:[selfgetObjectData:obj] options:optionserror:error];
}
+ (id)getObjectInternal:(id)obj
{
if([objisKindOfClass:[NSStringclass]]
|| [obj isKindOfClass:[NSNumberclass]]
|| [obj isKindOfClass:[NSNullclass]])
{
return obj;
}
if([objisKindOfClass:[NSArrayclass]])
{
NSArray *objarr = obj;
NSMutableArray *arr = [NSMutableArrayarrayWithCapacity:objarr.count];
for(int i =0;i < objarr.count; i++)
{
[arr setObject:[selfgetObjectInternal:[objarr objectAtIndex:i]] atIndexedSubscript:i];
}
return arr;
}
if([objisKindOfClass:[NSDictionaryclass]])
{
NSDictionary *objdic = obj;
NSMutableDictionary *dic = [NSMutableDictionarydictionaryWithCapacity:[objdic count]];
for(NSString *keyin objdic.allKeys)
{
[dic setObject:[selfgetObjectInternal:[objdic objectForKey:key]] forKey:key];
}
return dic;
}
return [selfgetObjectData:obj];
}
@end
- Model 转换成 nsdictionary
- ios如何将model转换成NSDictionary
- Json 转换成 NSDictionary
- NSdata 转换成 NSDictionary
- iOS NSData 转换成 NSDictionary
- iOS NSData转换成NSDictionary
- NSDictionary转换成JSON字符串
- iOS NSDictionary和Model
- NSDictionary转换成json格式的数据
- ios如何将NSDictionary转换成NSObject
- json的NSData 转换成NSDictionary
- swift将json数据转换成NSDictionary
- 把DataReader转换成model
- DataTable转换成List<Model>
- NSData 转换为NSDictionary
- ios NSDictionary/JSON转换
- 将NSDictionary转换成XML格式的plist
- iOS开发:字典(NSDictionary)和数组( NSArray)转换成字符串
- Shell中字符串分割的三种方法
- Difference Row(347A)
- Android启动Service登陆openfire服务器实现消息推送
- SSH框架的各自的好处
- Direct3D 可编程流水线 多重流和数据
- Model 转换成 nsdictionary
- ulimit -c unlimited
- ORA-01031:insufficient privileges的解决方法
- iOS沙盒
- 打开 删除指定目录下的word文档
- firefox使用深色GTK主题时文本区域故障(vertex主题输入框字体为白色,看不清)
- android如何为listview的每项中edittext控件添加textwacher
- 搭建新项目的步骤(一)
- 不生成core文件原因