iOS Json转换模型库:YYModel

iOS Json转换模型库:YYModel

其实在研究这个库之前,市面上已经有很多类似的模型序列化成JSON及反序列化库(如Mantle、MJExtension)了,推荐他只是因为他高端的性能和容错(错误对象类型赋值到属性时YYMODEL会尝试自动转换,避免Crash)以及低侵入(不需要你的MODEL类去继承某个基类、因为他是Category 方式来实现的)。作者号称对比性能如下:

接下来直接写一个小例子看如何使用:

1.首先准备JSON及对象如下:

{
    "userName": "向阳",
    "userPass": "xiang",
    "age": 10,
    "ident": [
        {
            "price": 100.56,
            "priceDate": "1987-06-13 00:00:00"
        },
        {
            "price": 100,
            "priceDate": "1987-06-13"
        }
    ]
}

模型:Ident

@interface Ident : NSObject
@property(nonatomic,strong) NSNumber* price;
@property(nonatomic,strong) NSDate* priceDate;
@end

#import "Ident.h"
@implementation Ident
@end

模型:User (对象有包含关系时,在包含类的中需要申明一个modelContainerPropertyGenericClass方法,并标明对应属性以及转换的对象类。如这里的User包含了Ident)

#import <Foundation/Foundation.h>
#import "Ident.h"
@interface User : NSObject
@property(nonatomic,strong)NSString* userName;
@property(nonatomic,strong)NSString* userPass;
@property(nonatomic,strong)NSNumber* age;
@property(nonatomic,strong)NSArray<Ident*>* ident;
@end

#import "User.h"
#import "Ident.h"
@implementation User
// 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。
+ (NSDictionary *)modelContainerPropertyGenericClass {
    return @{@"ident" : [Ident class]};
}
@end

2.使用方法(yy_modelWithJSON、yy_modelToJSONObject)
yy_modelWithJSON:将 JSON (NSData,NSString,NSDictionary) 转换为 Model
yy_modelToJSONObject:将Model转换成NSDictionary以及NSArray

  User *user = [User yy_modelWithJSON:jsonString];
  NSLog(@"%@",user.ident[0].priceDate);

  // 将 Model 转换为 JSON 对象:
  NSDictionary *json = [user yy_modelToJSONObject];


 

iOS攻城狮社群

这段时间有很多朋友来咨询,iOS攻城狮社群什么时候成立?今天,我正式的宣布iOS攻城狮第一期社群正式开始招募!

iOS攻城狮社群将作为刚刚在线2016年重点打造的项目,我们将会投入更多的时间和人力来为社群的每一位成员提供更有价值的服务。

服务人群

  1. 想要学习iOS开发的大学生。
  2. 刚刚参加完培训出来的朋友。
  3. iOS开发初学者。

加入iOS攻城狮社群你可以得到什么?

  1. 免费获取刚刚在线所有直播视频录像:我们现在每周都会有iOS开发技术直播课程,我们会把所有的直播视频收集起来,提供给iOS攻城狮社群成员学习。
  2. 基础入门:针对零基础的大学生,我们会直播和录制一些iOS开发入门的视频教程。
  3. 高级进阶:针对有基础的iOS开发者想要提供自己,我们会直播和录制在iOS开发中的一些常用的技术点。
  4. 项目讲解:很多公司在招聘iOS开发者的时候,都会问你会不会独立开发项目?有没有做过的项目案例?想必大家都深有体会。那么,刚刚在线将会把自己之前做的项目拿出来完整的讲解。我相信这是很多培训机构都做不到的事情。
  5. 独立博客:写博客的好处不用我在这里多说,独立博客就是一个小小的自媒体。如果你有自己的独立博客,对于以后找工作来说一定是加分的。刚刚在线将会安排专门的老师,手把手教大家如何建立自己的独立博客。
  6. iOS攻城狮专属论坛:在开发的过程中,大家一定会碰到各种各样的问题。那么,我们就会把问题沉淀到iOS开发攻城狮专属论坛里。有些经典的问题你,我们会安排讲师进行详细的讲解。

除了上面的,时间条件允许的情况下,我们还会举行线下的私密聚会,一起喝咖啡,聊聊天,吹吹牛。 我本人一直在帮很多朋友介绍工作,刚刚在线后面会考虑于第三方招聘合作,为大家提供更多的工作机会。

报名费用

iOS攻城狮社群定价:999元/年 (这个费用相对于我们提供的服务来说一定是超值的)

为了感谢大家的支持,也为了让加入社群的朋友感觉物超所值,我们决定第一期费用再降低。

iOS攻城狮第一期定价599/年。(折算下来一天不到2块钱)

大家可以计算一下,这个费用加起来还不够一个iOS工程师的工资。如果是为了赚这个钱,我们30位老师踏踏实实上班,一定比这赚的多得多。但是,我们依然要做这件事情,我们是真心的想去帮助更多的朋友学习iOS开发。

说的大一点,我们要做的是要颠覆现有的培训模式,让更多的朋友用最低的成本进入这个行业。我们理念是学习iOS开发本应该很简单。

支付方式

  1. 微信转账支付:chinaligang
  2. 支付宝转账支付:[email protected]

支付完成之后,请加我微信(私人号:chinaligang )告知,确定成功之后,我会拉你进入iOS攻城狮社群。

来吧,加入iOS攻城狮社群,愿大家除了思维上、技术上有所提高,更能成为网络上无话不谈的知心朋友!

也希望所有有缘能相聚于此群中的朋友,不仅仅把此群当成一个社群,而需要当成一个家!一起成长,一起进步!

时间: 2024-10-11 06:27:29

iOS Json转换模型库:YYModel的相关文章

IOS NSData 转换成 NSDictionary

当我们通过URLRequest获取到返回的数据时,如果返回的结果是JSON格式的数据,我们需要将返回的NSData转换成NSDictionary. ? ??NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&err];//获取网络链接返回的数据 ? ? NSDictionary *content = [NSJSONSerializa

atitit.XML类库选型及object 对象bean 跟json转换方案

atitit.XML类库选型及object 对象bean 跟json转换方案 1. XML类库可以分成2大类.标准的.这些类库通常接口和实现都是分开的 1 2. 常见的xml方面的方法 2 2.1. xml解析 2 2.2. bean与xml互相转换 2 2.3. json与xml的互相转换 2 3. 大名鼎鼎的 DOM  绿色环保的 SAX 默默无闻的 Digester 2 3.1. 默默无闻的 Digester:XML 的 JavaBean 化 2 4. Digester 解析 XML 3

比Newtonsoft.Json轻量快速简洁的实体JSON转换库YeaJur.Mapper

在使用MVC的时候,我们经常用到Newtonsoft.Json来进行实体和JSON 之间的转换,但是有时候,有些实体Newtonsoft.Json转换会出现异常.YeaJur.Mapper正是为了解决这些问题而来,并比Newtonsoft.Json轻量,转换速度快,使用简洁,测试结果如下 PK项 YeaJur.Mapper Newtonsoft.Json 版本 1.0 9.0.1 大小 6KB 514KB 实例(json格式) [ { "Products": [ { "Id&

JSON转换

JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它易于编程人员阅读和编写,同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)

ios json数据解析

刚刚下午那会 弄了个 解析 xml  demo的小例子,本想着json也挺复杂 弄还是 不弄,但是简单的看了下 发现挺简单,这个时候就犹豫了,要不写到博客上来 ? 考虑了很久,还是写上来吧,毕竟json用得太多了,而且算是自己的积累吧,毕竟刚开始学习IOS开发方面的知识,就当是巩固了撒! 还是 先看个效果图吧,如下! 接下来 看下工程目录吧,其实并没有必要,直接建立一个工程就行 ,算了,还是贴上来吧,如下: 工程目录中有个 Notes.json 文件,该文件就是 要解析的json数据了 ,也截下

XML,Object,Json转换之浅析Xstream的使用

XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库,主要用于Java对象和XML之间的转换.但XStream也内置了对Json的支持. 1.Xstream的特点: 这里直接引用Xstream官方的叙述: 灵活易用:在更高的层次上提供了简单.灵活.易用的统一接口,用户无需了解项目的底层细节 无需映射:大多数对象都可以在无需映射的情况下进行序列化与反序列化的操

Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案

使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: 1 public class TestClass 2 { 3 public TestClass() 4 { 5 Dt1 = Dt2 = new DateTime(1900, 1, 1, 0, 0, 0); 6 } 7 8 [JsonConverter(typeof(TcDateTimeConverter)

miniui datagrid 保存到服务端,使用.NET 自带 JSON 转换时发现日期格式不兼容。

使用 miniui datagrid 修改表格后,保存到服务端,然后使用 .NET 自带 JSON 转换,会抛出DateTime 内容“2015-12-27T11:02:28”未按 JSON 的要求以“\/Date(”开始并以“)\/”结束.异常,以下是解决方案: function saveData() { //前面代码略 var data = grid.getChanges(); var jsonArray = mini.decode(data);//转成json for (var i = 0

IOS 图片转换二进制 二进制转换为图片

//类方法 图片 转换为二进制 +(NSData *)Image_TransForm_Data:(UIImage *)image { NSData *imageData = UIImageJPEGRepresentation(image , 0.5); //几乎是按0.5图片大小就降到原来的一半 比如这里 24KB 降到11KB return imageData; } //调用方法举例 -(void)viewWillAppear:(BOOL)animated { [self Read_Image