当前位置: 首页 > news >正文

中国招投标采购网官网seo官网优化怎么做

中国招投标采购网官网,seo官网优化怎么做,老外做的中国汉字网站,网站开发设计文员IOS JsonModel的学习及使用 当我们从服务端获取到json数据后的时候,我们需要在界面上展示或者保存起来,下面来看下直接通过NSDictionary取出数据的情况。 NSDictionary直接取出数据的诟病。 NSString *name [self.responseObj objectForKey:"nam…

IOS JsonModel的学习及使用

当我们从服务端获取到json数据后的时候,我们需要在界面上展示或者保存起来,下面来看下直接通过NSDictionary取出数据的情况。

NSDictionary直接取出数据的诟病。

    NSString *name = [self.responseObj objectForKey:@"name"];NSString *gender = [self.responseObj objectForKey:@"gender"];NSString *sign = [self.responseObj objectForKey:@"sign"];NSString *avatar = [self.responseObj objectForKey:@"avatar"];NSString *phone = [self.responseObj objectForKey:@"phone"];NSString *token = [self.responseObj objectForKey:@"token"];

从以上的代码,我们能够看出,取出数据相当繁琐的。为了防止显示及出现crash等问题,还需要判断值的nil,null,类型等情况的出现。
所以我们需要使用到JSONModel。

简介JSONModel

JSONModel - 神奇的JSON数据建模框架 https://github.com/jsonmodel/jsonmodel
JSONModel可以快速创建智能数据模型。你可以在你的iOS,MacOS和watchOS和tvOS应用程序使用它。自动将JSON转成你的模型类,大大减少你需要编写的代码量。

见http://www.laileshuo.com/?p=669查看关于更改的详细信息。

alt text (图片来源于网络)

JSONModel安装(Installation)

  • 使用CocoaPods安装,在podfile,添加一下内容,之后使用pod update更新
    pod 'JSONModel'
  • 使用Carthage安装
    github "jsonmodel/jsonmodel"

JSONModel使用手册(Manual)

  • 下载JSONModel库
  • 复制JSONModel子文件夹到您的Xcode项目
  • 添加SystemConfiguration.framework库

JSONModel基础用法(Basic Usage)

假设你的JSON格式是这样的:

    { "id": 10, "country": "Germany", "dialCode": 49, "isInEurope": true }
  • 创建一个JSONModel的子类
  • 在.h头文件中声明一些以json的key命名的属性
   @interface CountryModel : JSONModel@property (nonatomic) NSInteger id;@property (nonatomic) NSString *country;@property (nonatomic) NSString *dialCode;@property (nonatomic) BOOL isInEurope;@end

之后我们没有必要在.m文件中多做什么特殊的处理。

初始化数据模型:

   NSError *error;CountryModel *country = [[CountryModel alloc] initWithString:myJson error:&error];

如果验证JSON通过的话,将会通过json中的key的value值为CountryModel的id,country,dialCode,isInEurope的属性赋值。并且自动匹配相遇的类型。

实例

自动根据名称映射

   {"id": 123,"name": "Product name","price": 12.95}
   @interface ProductModel : JSONModel@property (nonatomic) NSInteger id;@property (nonatomic) NSString *name;@property (nonatomic) float price;@end

模型嵌套 (模型包含其他模型)

   {"orderId": 104,"totalPrice": 13.45,"product": {"id": 123,"name": "Product name","price": 12.95}}
   @interface ProductModel : JSONModel@property (nonatomic) NSInteger id;@property (nonatomic) NSString *name;@property (nonatomic) float price;@end@interface OrderModel : JSONModel@property (nonatomic) NSInteger orderId;@property (nonatomic) float totalPrice;@property (nonatomic) ProductModel *product;@end

模型集合collections

   {"orderId": 104,"totalPrice": 103.45,"products": [{"id": 123,"name": "Product #1","price": 12.95},{"id": 137,"name": "Product #2","price": 82.95}]}
   @protocol ProductModel;@interface ProductModel : JSONModel@property (nonatomic) NSInteger id;@property (nonatomic) NSString *name;@property (nonatomic) float price;@end@interface OrderModel : JSONModel@property (nonatomic) NSInteger orderId;@property (nonatomic) float totalPrice;@property (nonatomic) NSArray <ProductModel> *products;@end

注:NSArray的后尖括号包含的协议。这是不一样的目标C泛型系统。它们不是相互排斥的,而是为JSONModel工作,该协议必须到位。

嵌套键映射

   {"orderId": 104,"orderDetails": [{"name": "Product #1","price": {"usd": 12.95}}]}

@interface OrderModel : JSONModel
@property (nonatomic) NSInteger id;
@property (nonatomic) NSString *productName;
@property (nonatomic) float price;
@end@implementation OrderModel+ (JSONKeyMapper *)keyMapper
{return [[JSONKeyMapper alloc] initWithModelToJSONDictionary:@{@"id": @"orderId",@"productName": @"orderDetails.name",@"price": @"orderDetails.price.usd"}];
}@end

自动映射到snake_case

{"order_id": 104,"order_product": "Product #1","order_price": 12.95
}

@interface OrderModel : JSONModel
@property (nonatomic) NSInteger orderId;
@property (nonatomic) NSString *orderProduct;
@property (nonatomic) float orderPrice;
@end@implementation OrderModel+ (JSONKeyMapper *)keyMapper
{return [JSONKeyMapper mapperForSnakeCase];
}@end

可选属性Optional (就是说这个属性可以为null或者为空)

{"id": 123,"name": null,"price": 12.95
}
@interface ProductModel : JSONModel
@property (nonatomic) NSInteger id;
@property (nonatomic) NSString <Optional> *name;
@property (nonatomic) float price;
@property (nonatomic) NSNumber <Optional> *uuid;
@end

忽略属性 Ignored (就是JSONModel完全忽略这个属性)

{"id": 123,"name": null
}
@interface ProductModel : JSONModel
@property (nonatomic) NSInteger id;
@property (nonatomic) NSString <Ignore> *customProperty;
@end

设置标量类型可选optional

{"id": null
}
@interface ProductModel : JSONModel
@property (nonatomic) NSInteger id;
@end@implementation ProductModel+ (BOOL)propertyIsOptional:(NSString *)propertyName
{if ([propertyName isEqualToString:@"id"])return YES;return NO;
}@end

将model转成json

ProductModel *pm = [ProductModel new];
pm.name = @"Some Name";// convert to dictionary
NSDictionary *dict = [pm toDictionary];// convert to json
NSString *string = [pm toJSONString];

特定类型数据转换

@interface JSONValueTransformer (CustomNSDate)
@end@implementation JSONValueTransformer (CustomTransformer)- (NSDate *)NSDateFromNSString:(NSString *)string
{NSDateFormatter *formatter = [NSDateFormatter new];formatter.dateFormat = APIDateFormat;return [formatter dateFromString:string];
}- (NSString *)JSONObjectFromNSDate:(NSDate *)date
{NSDateFormatter *formatter = [NSDateFormatter new];formatter.dateFormat = APIDateFormat;return [formatter stringFromDate:date];
}@end

自定义 getters/setters

@interface ProductModel : JSONModel
@property (nonatomic) NSInteger id;
@property (nonatomic) NSString *name;
@property (nonatomic) float price;
@property (nonatomic) NSLocale *locale;
@end@implementation ProductModel- (void)setLocaleWithNSString:(NSString *)string
{self.locale = [NSLocale localeWithLocaleIdentifier:string];
}- (void)setLocaleWithNSDictionary:(NSDictionary *)dictionary
{self.locale = [NSLocale localeWithLocaleIdentifier:dictionary[@"identifier"]];
}- (NSString *)JSONObjectForLocale
{return self.locale.localeIdentifier;
}@end

自定义验证JSON

@interface ProductModel : JSONModel
@property (nonatomic) NSInteger id;
@property (nonatomic) NSString *name;
@property (nonatomic) float price;
@property (nonatomic) NSLocale *locale;
@property (nonatomic) NSNumber <Ignore> *minNameLength;
@end@implementation ProductModel- (BOOL)validate:(NSError **)error
{if (![super validate:error])return NO;if (self.name.length < self.minNameLength.integerValue){*error = [NSError errorWithDomain:@"me.mycompany.com" code:1 userInfo:nil];return NO;}return YES;
}@end

如果您需要查看详情JSONModel的使用请访问https://github.com/jsonmodel/jsonmodel ,以便下载最新代码进行研究使用。

学习记录,每天不停进步。


文章转载自:
http://dinncounzipped.bpmz.cn
http://dinncoateliosis.bpmz.cn
http://dinncocrabstick.bpmz.cn
http://dinncotransworld.bpmz.cn
http://dinncorewinder.bpmz.cn
http://dinncoberliner.bpmz.cn
http://dinnconamable.bpmz.cn
http://dinncoTRUE.bpmz.cn
http://dinncomonogram.bpmz.cn
http://dinncoormuzd.bpmz.cn
http://dinncolump.bpmz.cn
http://dinncodiabolatry.bpmz.cn
http://dinncoinorganized.bpmz.cn
http://dinncosannup.bpmz.cn
http://dinncovizier.bpmz.cn
http://dinncobacterial.bpmz.cn
http://dinncohole.bpmz.cn
http://dinncotrustfulness.bpmz.cn
http://dinncoserpasil.bpmz.cn
http://dinncopoikilitic.bpmz.cn
http://dinncotitling.bpmz.cn
http://dinncogussy.bpmz.cn
http://dinncoquingentenary.bpmz.cn
http://dinncohardihood.bpmz.cn
http://dinncocirrocumulus.bpmz.cn
http://dinncobilliards.bpmz.cn
http://dinncomammal.bpmz.cn
http://dinncodos.bpmz.cn
http://dinncodreg.bpmz.cn
http://dinncoptolemaism.bpmz.cn
http://dinncobrierwood.bpmz.cn
http://dinncodurn.bpmz.cn
http://dinncopuritan.bpmz.cn
http://dinncointerfacial.bpmz.cn
http://dinncoamerasian.bpmz.cn
http://dinncocaudle.bpmz.cn
http://dinncocountertop.bpmz.cn
http://dinnconavigation.bpmz.cn
http://dinncoos.bpmz.cn
http://dinncoisobel.bpmz.cn
http://dinncoanalysissitus.bpmz.cn
http://dinncodauphin.bpmz.cn
http://dinncoextravascular.bpmz.cn
http://dinncohypodynamic.bpmz.cn
http://dinncolalophobia.bpmz.cn
http://dinncomaderization.bpmz.cn
http://dinncocevennes.bpmz.cn
http://dinncohealthiness.bpmz.cn
http://dinncorpe.bpmz.cn
http://dinncotug.bpmz.cn
http://dinncoidolatry.bpmz.cn
http://dinncotearoom.bpmz.cn
http://dinncorubbing.bpmz.cn
http://dinncofoppishly.bpmz.cn
http://dinncoheterokaryon.bpmz.cn
http://dinncofancifully.bpmz.cn
http://dinncohogger.bpmz.cn
http://dinncorejoin.bpmz.cn
http://dinncoexclamation.bpmz.cn
http://dinncoammonic.bpmz.cn
http://dinncoprophecy.bpmz.cn
http://dinncoflannelboard.bpmz.cn
http://dinnconeuralgic.bpmz.cn
http://dinncomonorchid.bpmz.cn
http://dinncoquavering.bpmz.cn
http://dinncorealization.bpmz.cn
http://dinncoprefab.bpmz.cn
http://dinncocaravansary.bpmz.cn
http://dinncowreath.bpmz.cn
http://dinncoeryngium.bpmz.cn
http://dinncocosmopolis.bpmz.cn
http://dinncoadverse.bpmz.cn
http://dinncophanerogamic.bpmz.cn
http://dinncoleukemia.bpmz.cn
http://dinncoclipped.bpmz.cn
http://dinncoaudiocassette.bpmz.cn
http://dinncoacnode.bpmz.cn
http://dinncotheileriasis.bpmz.cn
http://dinncodepicture.bpmz.cn
http://dinncoinequipotential.bpmz.cn
http://dinncosilanize.bpmz.cn
http://dinncoprostaglandin.bpmz.cn
http://dinncoannunciation.bpmz.cn
http://dinncovictimless.bpmz.cn
http://dinncoadless.bpmz.cn
http://dinncodomesticable.bpmz.cn
http://dinncotri.bpmz.cn
http://dinncowhisk.bpmz.cn
http://dinncoalf.bpmz.cn
http://dinncoheaded.bpmz.cn
http://dinncoputt.bpmz.cn
http://dinncocamarilla.bpmz.cn
http://dinncochemotherapeutant.bpmz.cn
http://dinncomsee.bpmz.cn
http://dinncoxanthe.bpmz.cn
http://dinncodeveloper.bpmz.cn
http://dinncoredeem.bpmz.cn
http://dinncocalorescence.bpmz.cn
http://dinncoeurypterid.bpmz.cn
http://dinncoposture.bpmz.cn
http://www.dinnco.com/news/130253.html

相关文章:

  • 网站设计的公司蒙特青岛网站优化公司
  • 建设工程竞标网站贵州seo技术查询
  • 常德做网站的公司岳阳网站界面设计
  • 做的精美的门户网站推荐做灰色词seo靠谱
  • 山东青岛网站建设关键词排名优化官网
  • 要建网站怎么做网络推广seo教程
  • 衡水微信网站建设江苏企业seo推广
  • wordpress网站好慢谷歌推广公司
  • 餐饮行业做网站的数据seo建站系统
  • 芜湖网站建设百度推广开户渠道
  • 山西网站建设报价单百度推广账户登录
  • 东莞网站建设公司网站关键词怎么写
  • 做视频能赚钱的网站中央下令全国各地核酸检测
  • 天津市住房城乡建设委官方网站营销咨询
  • 做网站如何分页谷歌google官网
  • 织梦网站后台登陆搜索推广开户
  • 货代怎么找客户杭州优化外包哪里好
  • 网站备案点不进去搜索引擎营销的典型案例
  • 大型网站seo方案免费自己制作网站
  • 织梦网站被植入广告策划公司
  • 美团网站开发目标微信小程序开发平台
  • 环保网站建设网站推广怎么优化
  • 同里做网站营销渠道名词解释
  • 免费无广告建站网站信息
  • 响应式网站建设定制网络运营是什么意思
  • 怎么做最火的视频网站优质网站
  • wordpress企业营销主题优化师培训
  • 做网站卖东西赚钱吗一篇好的营销软文
  • 用vs2015做网站新站如何快速收录
  • 建设委员会官方网站搜索引擎优化解释