首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏BillyMiracle的文章

    JSONModel源码学习

    JSONModel对外给出了许多常见的初始化方法: - (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)err 用来保存所有属性的名称NSSet static const char * kIndexPropertyNameKey; 大致过程为: 首先,在这个模型类的对象被初始化的时候,遍历自身到所有的父类(直到JSONModel = [JSONModel class]) { //JMLog(@"inspecting: %@", NSStringFromClass(class)); // 先是获取当前 作者用JSONModelClassProperty类封装了JSONModel的每一个属性。这个类有两个重要的属性:一个是name,它是属性的名称。 value可用的情况下,就开始进行赋值,有setter方法的通过setter方法赋值,基础类型int,float等直接赋值,如果property又是一个JSONModel,就递归先将子Model进行整体解析

    1.7K00编辑于 2022-05-08
  • 来自专栏一“技”之长

    JSONModel源码解析 原

    JSONModel源码解析 一、引言     做移动端开发,解析网络数据是必不可少的工作之一。 如上图所示,其中网络相关模块已经弃用,并且也不是JSONModel的核心模块,不在本次博客的探讨范围之内。 JSONModelError定义了许多错误类型,主要用来当请求或数据解析异常时进行抛出,需要注意,JSONModel定义的自己的log函数,其只会在模拟器运行时进行打印。     JSONModel框架中最核心的类JSONModel类,其中代码大约有1400行,除了一些调试,复写和提供方便功能的代码外,核心代码在800行左右。 ,示例如下: #import "JSONModel.h" @protocol Address @end @interface Address:JSONModel @property(nonatomic

    1.6K20发布于 2018-08-15
  • 来自专栏积累沉淀

    多人聊天室

    <User>>(){}.getType(); JsonModel<User> jsonModel=g.fromJson(jsonline, type); <User>>(){}.getType(); JsonModel<User> jsonModel=g.fromJson(jsonline, type); <Content> jsonModel=new JsonModel<Content>(); jsonModel.setCode(YcConstants.SEND_MESSAGE <User> jsonModel=new JsonModel<User>(); jsonModel.setCode(YcConstants.USER_LOGIN_OUT_CODE <User> jsonModel=new JsonModel<User>(); jsonModel.setCode(YcConstants.USER_LOGIN_CODE

    3.5K80发布于 2018-01-11
  • 来自专栏悟空码字,程序人生

    微信小程序直播间开发抽红包功能

    handleApiRetryException(ApiRetryException e){ JsonModel jsonModel = new JsonModel(); jsonModel.setStatus (e.getStatus()); jsonModel.setMsg(e.getMsg()); return jsonModel; } } 关于红包接口就三个, 1、给前端判断是弹出抢红包的窗口还是弹出其他提示窗口 = null) { return JsonModel.toFail(10001,"你已抢过该红包了"); } redPacket = baseMapper.selectOne (10003,"手慢了,红包派完了"); } return JsonModel.toSuccess(200,"弹出抽红包窗口"); } @ApiOperation(value image.png /** * 抽红包记录 * @param redPacketId * @return */ @Override public JsonModel redPacketRecord

    3.7K01发布于 2021-05-05
  • 来自专栏积累沉淀

    干货--Redis+Spring+Struts2实现网站计算器应用项目案例

    ; import com.yc.utils.JsonModel; import redis.clients.jedis.Jedis; @Controller("userAction") public jsonModel = new JsonModel(); @Autowired private UserServiceImpl userServiceImpl; public JsonModel getJsonModel() { return jsonModel; } public void setJsonModel(JsonModel jsonModel ) { this.jsonModel = jsonModel; } public String Ding() { User user = new User jsonModel.setObj(user); } return SUCCESS; } public String Cai() { User

    1.1K60发布于 2018-01-11
  • 来自专栏我杨某人的青春满是悔恨

    动手写个 JSON-Model Mapping 库

    所以我一直想写一个 JSON-Model 的映射器,我想要的效果是这样的: 定义一个 Model : class JSONModel { var error = "" var count = 0 var posts = [] } 发送网络请求后取得数据,然后直接转换成 JSONModel : let jsonModel = data => JSOMModel.self 就这点需求 JSON.png 定义两个Model: class JSONModel: NSObject { var error = "" var count = 0 var posts = (直接使用=>符号),保存到实例属性jsonModel中: getDataFromUrl(Constant.DemoAPI, method: .GET, parameter: nil) { data, error in if let jsonData = data { self.jsonModel = jsonData => JSONModel.self }

    1.7K30发布于 2018-09-10
  • 来自专栏一“技”之长

    iOS:JSON转OC属性小工具 原

    在进行数据模型的解析和映射时,JSONModel是一个非常常用且优秀的第三方框架,之前有有过博客对其分析,地址如下: JSONModel源码分析:https://my.oschina.net/u/2340880 无论使用什么第三方的JSON数据解析框架,我们都需要手动来编写数据模型类,这是一个十分机械性的体力活,本篇博客将介绍一个配合与JSONModel使用的自动生成属性脚本(支持类的嵌套)。       let cla = classArray[i]; stringAll+="@protocol "+cla.name+" @end\r\n\r\n@interface "+cla.name+" : JSONModel \r\n\r\n"; console.log("@protocol "+cla.name+" @end\r\n\r\n@interface "+cla.name+" : JSONModel\r\n\r "world_open": true } } 运行后,可以看到在JSON文件同一目录下生成了oc.txt文件,内容如下: @protocol Geo @end @interface Geo : JSONModel

    1.3K20发布于 2018-08-15
  • 来自专栏积累沉淀

    适配器模式

    javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.google.gson.Gson; import com.yc.bean.JsonModel super.service(arg0, arg1); } public void outData(HttpServletResponse response ,JsonModel

    97550发布于 2018-01-11
  • 来自专栏Helloted

    Runtime应用(一):Json转Model

    GitHub-JsonToModel下载 一、前言 与后台交互,后台返回的数据一般是Json类型的,然而我们的定义的模型一般是继承自NSObject,Json与Model之间的转换,第三方工具也有很多,比如YYModel,JSONModel 这三个第三方框架的测试效率为YYModel>MJExtention>JsonModel 其中JSon转Model的核心知识点就在于利用Runtime的特点来获取属性以及KVC进行赋值,尝试了一下,封装了一个简易版的工具

    69240编辑于 2022-06-07
  • 来自专栏iOS开发~

    iOS_Error(四)

    conform to protocol Decodable Encodable Every property in a Codable type must also be Codable as well. 9、‘JSONModel /JSONModel.h’ file not found 删掉pods 重新install

    1.5K20编辑于 2022-07-20
  • 来自专栏跟Qt君学编程

    Qml解析json

    ListView { width: parent.width height: 100 JSONListModel { id: jsonModel (@.label.charAt(0)==='A')]" } model: jsonModel.model delegate: Component { Text

    5.6K20编辑于 2023-03-17
  • 来自专栏吴老师移动开发

    【iOS开发】浅谈iOS列表分页数据管理

    再后来,各路大神写出了各种字典转model,model转字典的库,手动解析model就没有再做过了,从最开始的JSONModel到最近用的YYModel,这些库可以省去大部分的解析代码,判断代码。 开发中推荐YYModel,JSONModel在多线程写入时,没有做同步,会有crash的情况发生。

    1.4K30发布于 2018-09-05
  • 来自专栏悟空码字,程序人生

    抖音小程序开发 唤起收银台支付(可以选择支付宝APP支付或微信H5支付)

    param API_KEY * @param request * @param response * @return */ public static JsonModel logger.info("商户订单号:" + out_trade_no + "微信商城 小程序支付回调成功"); return JsonModel.toSuccess } else { logger.error("微信【商城 小程序】支付失败"); return JsonModel.toFail } else {// MD5签名失败 logger.error("微信【商城 小程序】支付MD5签名失败"); return JsonModel.toFail logger.error("微信支付【商城 小程序】异常=====:" + e.getMessage()); e.printStackTrace(); return JsonModel.toFail

    6.5K10发布于 2021-02-05
  • 来自专栏Antony iOS Development

    译文: 低调奢华有内涵的「Runtime」

    JSONModel 很多流行的第三方库都是利用Objective-C的Runtime实现的,JSONModel就是我们常用到的一个。 有人可能不知道,JSONModel允许你轻松地从JSON创建数据模型。实现原理是:Objective-C的Runtime,会在「运行时」读取对象的属性,并填充从JSON获取的值。 要知道它具体是怎么实现的,只需要看一下JSONModel.m文件的__inspectProperties方法就可以了。 下面是一个简单的截取: // inspect inherited properties up to the JSONModel class while (class ! = [JSONModel class]) { //JMLog(@"inspecting: %@", NSStringFromClass(class)); unsigned int propertyCount

    1.4K40发布于 2019-02-14
  • 来自专栏SAP Technical

    SAP ui5 table odata

    odataModel.getServiceMetadata().dataServices.schema[0], "SAPBPMInputData"); var oODataJSONModel = new sap.ui.model.json.JSONModel

    57110发布于 2020-11-27
  • 来自专栏戴铭的博客

    Swift 项目中涉及到 JSONDecoder,网络请求,泛型协议式编程的一些记录和想法

    print(jsonModel) } catch { print("解析 JSON 失败") } } } 这么写是 ok 的,能够成功请求得到 self.completionJSONClosure(jsonModel) } catch { print("解析 JSON 失败 ) in print(jsonModel) } 当然这样写起来是简单多了,特别是请求不同的接口返回不同结构时,本地定义了很多的 model 结构体,那么请求时只需要指明不同的 model 类型, 最终的效果如下: SMNetWorking<H5Editor>().requestJSON("https://httpbin.org/get") { (jsonModel) in let reStr = H5EditorToFrame<H5EditorObjc>(H5EditorObjc()).convert(jsonModel) print(reStr) } 如果是转成

    7.7K20发布于 2020-06-16
  • 来自专栏码客

    iOS开发中 JSON 和 Model 转换 以及泛形的写法

    OC 从 XCode7 后也支持泛形了 OC库 现在支持 JSON 和 Model 转换的OC库有很多 例如: MJExtension YYModel Mantle FastEasyMapping JSONModel

    2.6K20发布于 2019-10-22
  • 来自专栏ShaoYL

    iOS - - JSON 和 XML解析

    NSJSONReadingMutableLeaves error:nil]; [dict writeToFile:@"路径" atomically:YES]; 5.JSON转字典,字典再模型 Mantle 所有的模型都必须继承自MTModel JSONModel 所有的模型都必须继承自JSONModel MJExtension 不需要强制继承任何其他类 设计框架需要考虑的问题 侵入性 侵入性大就意味着很难离开这个框架 易用性 比较少量代码实现N多功能

    2.8K80发布于 2018-05-11
  • 来自专栏iOS面试

    今日头条 iOS 安装包大小优化 - 新阶段、新实践

    同时,代码中存在大量通过脚本自动生成的 JSONModel 子类,这些子类往往拥有大量属性。这里也就存在着包大小优化空间。 于是我们通过修改生成 JSONModel 子类的脚本,实现了: 1、属性全部使用 @dynamic 修饰,基础变量额外生成 IVAR 2、所有 JSONModel 的子类继承自新的父类,新的父类实现 resolveInstanceMethod

    2.3K00发布于 2021-02-21
  • 来自专栏戴铭的博客

    用 Swift 编写的工程代码静态分析命令行工具 smck

    简单的比如命名规则的检查,按照团队标准来,如所有继承 UIViewController 的命名末尾统一成 VC,继承 JSONModel 的命名末尾统一成 Model,还有特定功能基类的子类按照一定的命名规则来

    1.3K10发布于 2020-06-16
领券