看了Mantle这个库,依然需要在-JSONKeyPathsByPropertyKey方法中写对应的Keys。使用runtime在性能上也会有影响。直接生成代码不是来的更加方便吗?
业精于勤,荒于嬉;行成于思,毁于随。
Mantle就是你说的用于自动生成Model代码的工具,只是这个库的灵活性很大,对于不同的key怎么transform你可以完全自己定制。 Mantle在你自己定制方式的基础上自己序列化或者反序列化。 我目前代码正在用这个库,感觉非常不错。
Mantle使用Mantle是什么
1.费事2.不好理解维护3.性能不差啥4.runtime赋值的库很多有统一容错,安全性更高
直接生成代码会有大量的无用代码,如果 JSON 有1000个 key ,你需要至少有 1000 个属性,还要有 1000 行 xxx.xxx = json["xxx"]; 的代码。
首先,用JSONModel就可以不用写上对应的 keys 了~ 我没用过你说的这个库,如果每个 key 都需要写的话,我觉得体现不出什么优势~
其次,用工具生成代码,我觉得就可能出现潜在的不一致。model 一旦改变,比如添加了哪个字段/字段改了,忘了改生成的代码或者忘了重新跑一遍工具,就会取不到值,属性一直是 nil 还不知道怎么回事。用上 runtime 的转换,至少可以避免人为的疏忽~
本人目前还是用手动写的比较多,不过观察,jsonmodel确实是好东西
还不如用MJExtension来得简单。不过感觉用常量作key,字典取。比较灵活。(你不觉得有很多用不到的属性也转model很浪费吗?)
大部分情况下,解析的数据都不会很大,手机的性能完全可以满足这点开销。基于这点,会有以下好处:
更多的好处,还需要使用者再去体会,不同的方式,都去试试,说不定还可以总结出新的方式
Mantle就是你说的用于自动生成Model代码的工具,只是这个库的灵活性很大,对于不同的key怎么transform你可以完全自己定制。
Mantle在你自己定制方式的基础上自己序列化或者反序列化。
我目前代码正在用这个库,感觉非常不错。
推荐这两篇帖子给你
Mantle使用
Mantle是什么
1.费事
2.不好理解维护
3.性能不差啥
4.runtime赋值的库很多有统一容错,安全性更高
直接生成代码会有大量的无用代码,如果 JSON 有1000个 key ,你需要至少有 1000 个属性,还要有 1000 行 xxx.xxx = json["xxx"]; 的代码。
首先,用JSONModel就可以不用写上对应的 keys 了~ 我没用过你说的这个库,如果每个 key 都需要写的话,我觉得体现不出什么优势~
其次,用工具生成代码,我觉得就可能出现潜在的不一致。model 一旦改变,比如添加了哪个字段/字段改了,忘了改生成的代码或者忘了重新跑一遍工具,就会取不到值,属性一直是 nil 还不知道怎么回事。用上 runtime 的转换,至少可以避免人为的疏忽~
本人目前还是用手动写的比较多,不过观察,jsonmodel确实是好东西
还不如用MJExtension来得简单。不过感觉用常量作key,字典取。比较灵活。(你不觉得有很多用不到的属性也转model很浪费吗?)
大部分情况下,解析的数据都不会很大,手机的性能完全可以满足这点开销。基于这点,会有以下好处:
最大好处
其他好处
更多的好处,还需要使用者再去体会,不同的方式,都去试试,说不定还可以总结出新的方式