2011-04-23 72 views
2

我想创建一个将JSON字符串转换为对象的JSON库。 什么是最清洁的方式来标记与JSON字符串相关的属性? 是否有可能实现的东西像下面的代码目标C - 数据绑定?

注意:下面的代码不能正常工作,它只是一个样本,以显示我想要实现

JSON字符串

{ 
    "FIRST_NAME": "Some first name", 
    "LAST_NAME": "Some last name" 
    "CLASSES" : 
    [ 
     { 
     "CLASS_NAME": "class 1" 
     } 
     { 
     "CLASS_NAME": "class 2" 
     } 
    ] 
} 

型号

@interFace Student 

[JSON = "FIRST_NAME"] 
@property (nonatomic, retain) NSString *firstName; 

[JSON = "LAST_NAME"] 
@property (nonatomic, retain) NSString *lastName; 

[JSON = "CLASSES"] 
@property (nonatomic, retain) NSArray *classes; 

@end 

JSON方法

@implementation JSON 
+ (id)getObjectFromJSONString:(NSString*)string withType:(Class)class 
{ 
    //Create a student Object 
    //for each property if there is a JSON mark look for the value in json string 
    //populate all available values 
    //return object 
} 
@end 

回答

2

这当然是可能的。但是请注意,Objective-C不支持可以在运行时检查的任意源代码注释,所以JSON键和代表实例变量或声明属性的对象键之间的映射不会完全像您所描述的。我建议你看看RestKit。除了帮助您将程序连接到RESTful服务外,它还有一个对象映射基础结构,可以以声明方式将远程JSON消息转换为本地域对象。

0

我假设你正在使用JSON-框架解析JSON。

据我所知。我们一直在编写一些使用JSON输入的数据客户端。

根据谁维护REST服务,您还必须检查NULL值等内容。你也可能需要将值转换为Integer/Float。

+0

是我计划使用JSON框架解析JSON字符串的NSDictionary – aryaxt 2011-04-23 04:11:08