{ "a":"val1","b":"val2","c":"val3"}
我有一个客观的C头文件,如:
@interface TestItem : NSObject@property Nsstring *a;@property Nsstring *b;@property Nsstring *c;@end
我可以解析Json并获取TestItem类的实例吗?
我知道如何将Json解析为字典,但我想在一个类中解析它(类似于gson在Java中所做的那样).
解决方法 您不必直接使用字典,而是始终使用键值编码将JsON反序列化(解析)到您的类.键值编码是Cocoa的一个很好的特性,它允许您在运行时按名称访问类的属性和实例变量.正如我所看到的,您的JsON模型并不复杂,您可以轻松应用它.person.h
#import <Foundation/Foundation.h>@interface Person : NSObject@property Nsstring *personname;@property Nsstring *personMIDdlename;@property Nsstring *personLastname;- (instancetype)initWithJsONString:(Nsstring *)JsONString;@end
person.m
#import "Person.h"@implementation Person- (instancetype)init{ self = [super init]; if (self) { } return self;}- (instancetype)initWithJsONString:(Nsstring *)JsONString{ self = [super init]; if (self) { NSError *error = nil; NSData *JsONData = [JsONString dataUsingEnCoding:NSUTF8StringEnCoding]; NSDictionary *JsONDictionary = [NSJsONSerialization JsONObjectWithData:JsONData options:0 error:&error]; if (!error && JsONDictionary) { //Loop method for (Nsstring* key in JsONDictionary) { [self setValue:[JsONDictionary valueForKey:key] forKey:key]; } // Instead of Loop method you can also use: // thanks @sAPI for good catch and warning. // [self setValuesForKeysWithDictionary:JsONDictionary]; } } return self;}@end
appDelegate.m
@implementation AppDelegate - (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification { // JsON String Nsstring *JsONStr = @"{ \"personname\":\"Myname\",\"personMIDdlename\":\"MyMIDdlename\",\"personLastname\":\"MyLastname\" }"; // Init custom class Person *person = [[Person alloc] initWithJsONString:JsONStr]; // Here we can print out all of custom object propertIEs. NSLog(@"%@",person.personname); //Print Myname NSLog(@"%@",person.personMIDdlename); //Print MyMIDdlename NSLog(@"%@",person.personLastname); //Print MyLastname }@end
文章using JSON to load Objective-C objects好点开始.
总结以上是内存溢出为你收集整理的ios – 将JSON解析为Objective C中的预定义类全部内容,希望文章能够帮你解决ios – 将JSON解析为Objective C中的预定义类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)