gpt4 book ai didi

ios - 如何将 NSDictionary 转换为自定义对象

转载 作者:技术小花猫 更新时间:2023-10-29 10:41:23 26 4
gpt4 key购买 nike

我有一个 json 对象:

@interface Order : NSObject

@property (nonatomic, retain) NSString *OrderId;
@property (nonatomic, retain) NSString *Title;
@property (nonatomic, retain) NSString *Weight;

- (NSMutableDictionary *)toNSDictionary;
...

- (NSMutableDictionary *)toNSDictionary
{

NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setValue:self.OrderId forKey:@"OrderId"];
[dictionary setValue:self.Title forKey:@"Title"];
[dictionary setValue:self.Weight forKey:@"Weight"];

return dictionary;
}

在字符串中是:

{
"Title" : "test",
"Weight" : "32",
"OrderId" : "55"
}

我得到带有代码的字符串 JSON:

NSMutableDictionary* str = [o toNSDictionary];

NSError *writeError = nil;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:str options:NSJSONWritingPrettyPrinted error:&writeError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

现在我需要从 JSON 字符串创建和映射对象:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *e;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e];

这会返回我填充的 ​​NSDictionary。我应该怎么做才能从这个字典中获取对象?

最佳答案

Order 添加一个新的 initWithDictionary: 方法:

- (instancetype)initWithDictionary:(NSDictionary*)dictionary {
if (self = [super init]) {
self.OrderId = dictionary[@"OrderId"];
self.Title = dictionary[@"Title"];
self.Weight = dictionary[@"Weight"];
}
return self;
}

不要忘记将initWithDictionary 的签名添加到Order.h 文件

在获取JSON的方法中:

NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *e;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&e];
Order *order = [[Order alloc] initWithDictionary:dict];

关于ios - 如何将 NSDictionary 转换为自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21329793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com