iOS JSON 模型转换库评测

iOS字典和模型之间互相转换 MJExtension是一套“字典和模型之间互相转换”的轻量级框架。 MJExtension是一套“字典和模型之间互相转换”的轻量级框架。 立即下载

iOS 开发中总会用到各种 JSON 模型转换库,这篇文章将会对常见的几个开源库进行一下评测。评测的内容主要集中在性能、功能、容错性这几个方面。

评测的对象:

Manually
手动进行 JSON/Model 转换,不用任何开源库,可以进行高效、自由的转换,但手写代码非常繁琐,而且容易出错。

YYModel
我造的一个新轮子,比较轻量(算上 .h 只有 5 个文件),支持自动的 JSON/Model 转换,支持定义映射过程。API 简洁,功能也比较简单。

FastEasyMapping
Yalantis 开发的一个 JSON 模型转换库,可以自定义详细的 Model 映射过程,支持 CoreData。使用者较少。

JSONModel
一个 JSON 模型转换库,有着比较简洁的接口。Model 需要继承自 JSONModel。

Mantle
Github 官方团队开发的 JSON 模型转换库,Model 需要继承自 MTLModel。功能丰富,文档完善,使用广泛。

MJExtension
国内开发者"小码哥"开发的 JSON 模型库,号称性能超过 JSONModel 和 Mantle,使用简单无侵入。国内有大量使用者。

性能评测:

所有开源库代码更新至 2015-09-18,以 Release 方式编译,运行在 iPhone 6 上,代码见https://github.com/ibireme/YYModel/tree/master/Benchmark。

用例1:GithubUser
从 https://api.github.com/users/facebook 获取的一条 User 数据,去除 NSDate 属性。
该 JSON 有 30 行,大部分属性是 string,少量是 number。这个用例主要是测试最基础的 Model 相关操作。
每次测试执行 10000 次,统计耗时毫秒数。

yymodel_benchmark_1

用例2: WeiboStatus

从官方微博 App 抓取一条内容完整的微博数据,JSON 总共有 580 行(是的,一条微博需要这么大数据量),包含大量嵌套对象、容器对象、类型转换、日期解析等。这个用例主要是测试在复杂的情况下不同库的性能。
每次测试执行 1000 次,统计耗时毫秒数。

yymodel_benchmark_2

测试结果如下:

Mantle 在各个测试中,性能都是最差的
JSONModel 和 MJExtension 性能相差不多,但都比 Mantle 性能高。
FastEasyMapping 相对来说性能确实比较快。
YYModel 性能高出其他几个库一个数量级,接近手写代码的效率。

FastEasyMapping 不支持 NSCoding 协议,所以不能进行 Archive 的性能测试。
MJExtension 在处理复杂对象转为 JSON 时,存在错误。

(此处我也测试了一些 Swift 的项目,例如 ObjectMapper、JSONHelper、ModelRocket,性能比 Mantle 还差很多,这里就不进行对比了。)

 

容错性:

容错性主要是测试在默认情况下,当 JSON 格式错误时,Model 框架是否会产生错误结果或造成 Crash。

用例YYModelFastEasyMappingJSONModelMantleMJExtension
JSON 属性是 number
Model 属性是 NSString
✅ NSString
ios-json转模型,模型转json,支持无限嵌套.zip * WHC_DataModel 功能说明: * 1.支持json到模型对象 * 2.支持模型对象到json的转换 * 3.同时支持json和模型对象的无限嵌套 * 4.解析效率高 * qq:712641411 * iOS群: 302157745 * gitHub:https://github.com/netyouli/WHC_DataModel 立即下载

相关推荐

iOS工具一键JSON转OC数据模型类

一款很实用的工具 在Mac运行后即可把json转为相应的OC数据模型类,提高开发效率

关于YYModel的使用以及与MJExtension的一些比较

1>YYModel是干啥的? YYModel是一个性能非常好的字典转模型的框架,目前来讲性能仅次于系统的KVC, 关于字典转模型的框架我以前用的是一个MJExtension,这个是李明杰写的一个框架。也是非常好用的。 首先要膜拜以下 YYModel的作者bireme 2>怎么用? 其实github上有中文注释,这里也小小地总结一下: 第一种情况是:自动转

qq_32510691的博客 2728

ICCV 2025 | 哈工大、清华等提出首个双曲学习框架:HLFormer,革新局部相关视频检索

离原点越远,代表的语义越具体(部分)。现有方法大多在传统的欧几里得空间中对视频和文本进行建模,但这往往会导致对视频内在层次结构的错误表示,从而影响检索的准确性。通过UMAP对学习到的帧嵌入进行可视化(如下图),可以观察到,来自同一时刻的视频帧在嵌入空间中聚集在一起,清晰地展示了模型对时序关系的捕捉能力。下图的双曲空间可视化进一步证实了模型的层次建模能力:离原点越近的点,代表的语义层级越高、粒度越粗糙,反之亦然。:既然文本查询描述的是视频的一部分,那么在几何表示上,文本的嵌入向量应该从属于视频的嵌入向量。

我爱计算机视觉 1080

JSON解析

JSON解析 简单的特点: 轻量级数据格式,一般用于数据交互 形式上类似于字典和数组 只需读取JSON字符串 解析方案: 1、第三方框架: JSONKit SBJSON TouchJson 2、原生 NSJONSerialization 转换 1、json->OC对象 2、OC对象->json对象 3、OC对象和JSON数据格式之间的一一对应关系 查看JSON数据的方...

鹤九霄的博客 253

昇腾NPU实战:PaddleSpeech语音模型高效部署与性能优化指南

本文详细介绍了如何在华为昇腾NPU上高效部署PaddleSpeech语音识别模型。通过使用官方Docker镜像、解决依赖冲突、修改源码适配NPU算子,并应用混合精度与批处理等优化技巧,实现模型在昇腾平台上的稳定运行与性能提升,为AI语音应用提供高性价比的国产硬件部署方案。

weixin_29214691的博客 181

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 427

YYModel和MJExtension的性能测试

一、简单介绍YYKit 是有一组功能丰富的 iOS 组件,而其中YYModel就是其旗下的字典转模型的一个组件。下面我们可以先去看看网站上YYModel的一张图。二、具体测试首先我们准备好一个字典数据和一个模型类,然后分别使用YYModel的和MJExtension的字典转模型模型类#import <Foundation/Foundation.h> @interface Person...

rv0p111 1414

龙头复盘神器/复盘于导出工具最新版5.6

龙头复盘神器,复盘于导出工具

初入python踩过的坑 8234

ios-json数据转模型

和plist基本相同,都是懒加载数组 //模型中的类方法,解析字典 +(instancetype)productWithDitc:(NSDictionary *)dict { Product * p=[[self alloc]init]; p.title=dict[@"title"]; p.title=dict[@"title"]; p.title=dict[@

rv0p111 1399

LabVIEW数据采集-数字I/O/计数器

labview 数据采集 数字I/O 计数器

weixin_43781045的博客 5617

Intel Realsense windows安装与入门

realsense400系列介绍: https://www.intelrealsense.com/stereo-depth/?utm_source=intelcom_website&utm_medium=button&utm_campaign=day-to-day&utm_content=D400_learn-more_button realsense 435i介绍: ...

hanshuning的专栏 1万+

iOS 模型转换

为了将数据对象话,通常需要将网络请求的JSON数据或者字典转换为模型。 json数据一般有两种类型,第一种json字符串,需要解析出来,第二种json对象如:字典、数组   补充,网络传输一般使用的是jsonDate数据 一、不使用第三方库转换 1.字典转模型(定义模型类) a.普通属性对应转换: 模型类.objectWithKeyValues(dic) as? 模型类 注意:字典中包含

小桥流水哗啦啦,iOS Coder 哒哒哒 2288

S7-1200中通过MODBUS TCP客户端在一次请求中实现从服务器读写一个或多个保持性寄存器的具体方法

S7-1200中通过MODBUS TCP客户端在一次请求中实现从服务器读写一个或多个保持性寄存器的具体方法

Robot_PLC_HMI_Automation 4225

iOS JSON 模型转换库评测——YYModel作者

iOS JSON 模型转换库评测 转自:iOS JSON 模型转换库评测 iOS 开发中总会用到各种 JSON 模型转换库,这篇文章将会对常见的几个开源库进行一下评测。评测的内容主要集中在性能、功能、容错性这几个方面。 一、评测的对象: Manually 手动进行 JSON/Model 转换,不用任何开源库,可以进行高效、自由的转换,但手写代码非常繁琐,而且容易出错。 YYModel 我造的一个新轮子,比较轻量(算上 .h 只有 5 个文件),支持自动的 JSON/Model 转换,支持定义映射过

ArthurCaoMH的博客 754

Spring AI Alibaba实战训练营-14基于A2A协议智能体应用开发指南

本文介绍了基于A2A协议的智能体应用开发流程,主要包括客户端和服务端两个模块的实现。关键技术包括A2A通信协议、Nacos服务发现、Spring AI Alibaba框架和DashScope通义千问API。开发步骤涵盖环境准备(JDK17、Maven、Nacos)、项目创建、依赖配置(重点引入spring-ai-alibaba相关组件)以及Nacos和DashScope的核心配置。整个系统架构采用客户端通过Nacos发现服务端Agent,再调用阿里云AI服务的模式,实现了AI能力的解耦与复用。

program哲学 505

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

JSONModel性能终极评测:iOS开发中最佳的JSON解析框架选择指南

JSONModel是一个由Objective-C和Swift编写的iOS和macOS框架,旨在简化JSON数据与模型对象之间的转换过程。通过使用JSONModel,开发者可以更轻松地处理网络请求返回的JSON数据,并将其映射为本地模型类,显著提升开发效率。 ## 为什么选择JSONModel进行JSON解析? 在iOS开发中,JSON数据解析是处理网络请求的核心环节。JSONModel作为一款

gitblog_00612的博客 424

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

iOS开发终极指南:3大JSON解析框架横评,谁是性能与易用性之王?

在iOS开发中,JSON解析是处理网络数据的核心环节。一个高效、易用的JSON解析框架能显著提升开发效率和应用性能。本文将深入对比当前iOS开发中最主流的三大JSON解析框架——MJExtension、SwiftyJSON和HandyJSON,从性能、易用性、功能特性等维度进行全面评测,助你找到最适合项目需求的解决方案。 ### 为什么选择专业JSON解析框架? 手动解析JSON数据不仅繁琐易

gitblog_00890的博客 1067

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

手机端小模型评测:从跑分到可复现的工程方法

大模型评测正从云端向移动端延伸,端侧推理对延迟、内存与功耗的严苛要求,使得传统跑分难以直接反映真实部署效果。同时,模型量化格式、推理框架版本以及业务场景差异,都会让同一个模型的表现天差地别。要做出可信的选型决策,必须建立一套可复现、可对比的工程化评测流程。本文从端侧评测的核心指标出发,介绍了如何结合公共基准与业务回归集,在llama.cpp等框架上完成准确率、速度与资源占用的综合验证。通过固定评估变量、记录配置基线,这套方法论能帮助开发者在纷繁的模型与框架组合中找到最适合自己业务场景的方案。

weixin_34320724的博客 320

手机端小模型评测实战:从量化部署到性能分析

随着大语言模型从云端走向端侧,手机端小模型的落地价值愈发凸显。这类参数量在0.5B至7B之间的轻量模型,在内存带宽、功耗和算力受限的移动设备上,如何稳定运行并保持可用体验,成为工程选型的关键问题。评测不是简单跑分,而是从模型量化、推理框架、真机性能采样到质量评估的系统工程。本文从常见评测指标切入,介绍量化位宽对速度与质量的影响,演示基于llama.cpp在Android设备上的完整部署流程,并讨论发热降频、版本兼容等工程实践中的真实痛点。无论你是做AI应用集成还是移动端能力探索,掌握这套评测方法论,都能让模

weixin_30920853的博客 400

Pipette:端侧模型评测基准套件,量化与硬件耦合下的可复现方案

在端侧AI部署中,模型量化与推理框架、硬件架构的适配直接影响实际性能。同一模型在不同芯片和运行时下的延迟与精度差异极大,而缺乏统一评测口径常导致工程决策失真。端侧推理的正确评估需要同时控制模型、量化方案、运行时与硬件四个变量,通过矩阵式对比实验分离各自影响。模型量化技术(如PTQ、QAT、GPTQ、AWQ)与推理引擎(如ONNX Runtime、llama.cpp)的选择,必须在真实硬件带宽、内存约束和精度指标下综合衡量。Pipette作为可复现的基准套件,提供标准化评测流程,帮助开发者横向比较延迟、吞吐、

weixin_34293911的博客 424

第三方框架学习—YYKit

ibireme和YYKit 可以看一下唐巧对ibireme的采访 搜索一下ibireme的微博 简言之,渴望成为iOS大牛的新人,只有两条捷径,一是大量地阅读优秀项目的源代码,另一个就是自己动手实践来尝试。 YYKit YYKit 是一组庞大、功能丰富的 iOS 组件。 为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件:

bluewindaa的专栏 2393

13.第三方源码-YYKit

YYKit YYKit 是一组庞大、功能丰富的 iOS 组件。 为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件: YYModel — 高性能的 iOS JSON 模型框架。 YYCache — 高性能的 iOS 缓存框架。 YYImage — 功能强大的 iOS 图像框架。 YYWebImage — 高性能的 iOS 异步图...

科技区软件类AI博主 🔍 专注 AI 工具测评 / 前沿产品深度拆解 / 行业趋势预判 🚫 拒绝科技玄学,只讲人话干货 —— 从工具使用到商业落地,搭建可复用的 AI 应用框架 114

上海中文大模型竞技场:国产AI真实能力全景评测

大模型评测正从静态分数走向动态场景验证。中文大模型的核心挑战在于语义理解深度、逻辑推理可靠性、长文本处理实效性及中文特有任务适配能力,而非单纯参数规模或通用基准得分。上海推出的国产大模型竞技场以政务、医疗、教育等一线真实需求为底座,构建覆盖语言理解、数学推演、代码生成、多轮对话、安全对齐、长文本分析与方言古文处理的七大能力尺子,强调‘能用、可靠、合规、接地’的技术价值。其盲测机制、实时对战、能力体检报告等设计,为政企选型、高校研究与工程师实践提供可验证、可迁移、可迭代的中文AI能力标尺。

weixin_33910759的博客 433
上一篇: 错误:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insec
下一篇: 行情列表重构 TabBar&NavBar&tableView
itianyi
博客等级 码龄15年 317粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值