IOS 反射获取属性,序列化成JSON
2013-03-05 15:56
183 查看
继上篇序列化成xml,这篇介绍如何序列化成JSON对象。
只是稍有改动
ConvertObjToJSON.h
ConvertObjToJSON.m
调用方式和上一篇xml的一样。
目前只支持NSSTRING和自定义类。
只是稍有改动
ConvertObjToJSON.h
// // ConvertObjToJSON.h // // // Created by Elliott on 13-3-5. // Copyright (c) 2013年 Elliott. All rights reserved. // #import <Foundation/Foundation.h> @interface ConvertObjToJSON : NSObject +(NSString *)Convert:(id)obj; @end
ConvertObjToJSON.m
// // ConvertObjToJSON.m // // // Created by Elliott on 13-3-5. // Copyright (c) 2013年 Elliott. All rights reserved. // #import <objc/runtime.h> #import "ConvertObjToJSON.h" @implementation ConvertObjToJSON +(NSString *)Convert:(id)obj { unsigned int outCount, i; objc_property_t *properties = class_copyPropertyList([obj class], &outCount); NSString *xml=@"{"; for(i = 0; i < outCount; i++) { objc_property_t property = properties[i]; NSString *key=[[NSString alloc]initWithCString:property_getName(property) encoding:NSUTF8StringEncoding]; id value=[obj valueForKey:key]; if (value!=nil) { //IF NOT NSSTRING,LOOP!!!!!! if (![value isKindOfClass:[NSString class]]) { xml=[xml stringByAppendingFormat:@"%@:%@,",key,[ConvertObjToJSON Convert:[obj valueForKey:key]]]; } else { xml=[xml stringByAppendingFormat:@"%@:'%@',",key,value]; } } else { xml=[xml stringByAppendingFormat:@"%@:'%@',",key,@""]; } } xml=[xml substringToIndex:xml.length-1]; xml=[xml stringByAppendingString:@"}"]; //NSLog(@"结果:%@",xml); free(properties); return xml; } @end
调用方式和上一篇xml的一样。
目前只支持NSSTRING和自定义类。
相关文章推荐
- IOS 反射获取属性,序列化成xml
- iOS 反射获取类的属性列表
- iOS反射机制,获取方法名和描述属性
- 反射获取对象的属性名和对应的值并转为json字符串
- ios 反射机制--获取类的所有属性名
- [ios]objective-c 反射获取类的属性的方法
- iOS 反射获取 类属性列表
- iOS Json和对象互转(反射支持对象嵌套的复杂对象类型,支持基本数据类型和NSDate属性转化)
- java反射扫描包,获取枚举属性
- ios 通过runtime 获取属性列表并修改变量值
- 反射获取list属性里的类名
- 『IOS』ios 获取屏幕的属性和宽度
- C#利用反射获取属性的值
- java使用反射机制根据属性名获取object对象指定属性的值
- java利用反射获取对象类名以及对象属性名
- 用反射的方式获取父类中的所有属性和方法
- ios 替换从网络获取的JSON数据中的Null
- .net MVC 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值
- 利用反射获取类的方法及属性
- ios 获取屏幕的属性和宽度