我有一个复杂的对象,其中包含 NSString、NSArray、BOOL 等类型的 ivars。我需要将它们转换为 JSON。
我目前正在做的是为每个 NSObject 的值设置键(尽管键与 NSObject 的属性相同),如下所示:-
[crEntityDict setObject:[[MyObjectName sharedObject] vinNumber] forKey:@"vinNumber"];
[crEntityDict setObject:[[MyObjectName sharedObject] make] forKey:@"make"];
MyObjectName 是一个 Singleton 对象,具有与此处设置的键相同的属性。我只是找不到如何将此对象直接转换为属性名称作为键和属性值作为值的 NSDictionary。
有没有更好、更简单的方法来做到这一点?
编辑 这是我试图转换为 JSON 的 NSObject 的完整头文件代码:- MyObjectName.h
#import <Foundation/Foundation.h>
@interface MyObjectName : NSObject
{
NSString *vinNumber,*make,*model;
int mileage;
BOOL isKeyPresent;
}
@property (nonatomic,strong) NSString *vinNumber,*make,*model;
@property (nonatomic,assign) int mileage;
@property (nonatomic,assign) BOOL isKeyPresent;
+ (MyObjectName *)sharedObjectName;
如何直接将此对象转换为 JSON 表示,而无需通过设置与 ivars 具有相同名称的键的值来再次创建 NSDictionary,属性名称为键,属性值为值,例如: {“vinNumber”:,” make":make_value_string,"model":model_value_string,"mileage":mileage_value_int,"isKeyPresent":isKeyPresent_value_bool}