iOS:使用YYModel实现本地JSON文件解析

本文介绍了如何在iOS应用中利用YYModel库解析本地JSON文件。首先,确保模型类的属性名与JSON文件中的key对应。如果属性名与系统关键字冲突,需要在.m文件中处理。其次,引入YYModel头文件,并在视图控制器中声明一个用于保存解析后模型数据的数组。最后,通过YYModel的API加载并解析JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在模型类中定义属性
属性名需要和JSON文件中key值保持一致

这里写图片描述

@interface WBCityInfoModel : NSObject

/// 城市名
@property (nonatomic, copy) NSString *name;

/// id
@property (nonatomic, copy) NSString *idName;

注意:属性名与系统重名,需要在.m文件中调用

-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
    // jsonModel属性与系统重名
    if ([key isEqualToString:@"id"]) {
        _idName = value;
    }
}

2.导入头文件 #import “YYModel.h”
在viewController定义一个数组属性

// 模型数组保存解析后的模型数据

@property (nonatomic, strong) NSArray *modelArray;

3.加载数据(这里使用YYModel)

#pragma mark - 加载数据
- (void)loadCitysData {

    NSString *url = [[NSBundle mainBundle]URLForResource:@"citysData.json" withExtension:nil];
    //加载JSON文件
    NSData *data = [NSData dataWithContentsOfURL:url];

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    // YYModel实现字典数组转模型数组
    self.modelArray = [NSArray yy_modelArrayWithClass:[WBCityInfoModel class] json:dict];

    // 回到主线程刷新UI
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{
         [self.tableView reloadData];
    }];
}

结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值