84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
看了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很浪费吗?)
大部分情况下,解析的数据都不会很大,手机的性能完全可以满足这点开销。基于这点,会有以下好处:
最大好处
其他好处
更多的好处,还需要使用者再去体会,不同的方式,都去试试,说不定还可以总结出新的方式