runtime解析json数据
2016-06-20 14:14
405 查看
runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。 在我们平时编写的OC代码中, 程序运行过程时,
其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者。
下面简单介绍一下runtime使用场景之一 ----- json数据解析
思路其实非常简单:
1.要先清楚服务端字段名字,然后将自己的类里面字段的名字与其相同
2.使用class_copyPropertyList
函数获取当前类的所有字段
3.根据字段名取出对应的值,然后赋值即可
代码:
unsigned
int count;
objc_property_t *property_t_array =
class_copyPropertyList([NSObject
class], &count);
for(int i =0;i < count; i++){
objc_property_t pro_t = property_t_array[i];
const
char *pro_name = property_getName(pro_t);
NSString *key = [NSStringstringWithUTF8String:pro_name];
id value = [dic
valueForKey:key];
[self
setValue:value forKey:key];
}
free(property_t_array);
是不是很简单的,其实就是当类的属性非常多的时候,不再需要一个一个的解析赋值,少了很多代码而已。
其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者。
下面简单介绍一下runtime使用场景之一 ----- json数据解析
思路其实非常简单:
1.要先清楚服务端字段名字,然后将自己的类里面字段的名字与其相同
2.使用class_copyPropertyList
函数获取当前类的所有字段
3.根据字段名取出对应的值,然后赋值即可
代码:
unsigned
int count;
objc_property_t *property_t_array =
class_copyPropertyList([NSObject
class], &count);
for(int i =0;i < count; i++){
objc_property_t pro_t = property_t_array[i];
const
char *pro_name = property_getName(pro_t);
NSString *key = [NSStringstringWithUTF8String:pro_name];
id value = [dic
valueForKey:key];
[self
setValue:value forKey:key];
}
free(property_t_array);
是不是很简单的,其实就是当类的属性非常多的时候,不再需要一个一个的解析赋值,少了很多代码而已。
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- Java Runtime Environment 5.0 Update 12 下载
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C# JSON格式化转换辅助类 ConvertJson
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧