扫码关注官方订阅号
Android中,在拿到api提供的json后,textView设置text,ListView的Adapter里设置数据,都是直接用这个json对象里拿字符串,拿jsonArray,全程没有用JavaBean。自己感觉这样使用是蛮简单的,但是不知道会有什么潜在的问题,求指教。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
如果有持久化需求的话,这种做法就非常不好, 根本用不了orm。从代码可读性来讲,也不推荐这么做,毕竟你看见的都是jsonObject,很容易头晕。而且哪天服务端字段改了,就只好在那哭了。综上所述,非常不推荐这样的做法。
有利于代码的重用,代码的封装,增加安全性 同时这也是一种面向对象的思想。
本人射手座,对IDE使用有洁癖,势必要快捷键顺手、补全代码容易....
言归正传,jsonArray.get***(index),是有风险的,如果jsonArray就是数组,长度不够你exception;jsonObject.get**(key),如果key不存在,也有exception抛出.... 如果楼主这么写,势必万山遍野的try...catch... 烦不烦? 虽然jsonObject有opt**(key)方法,但最好还是加try catch。
jsonArray.get***(index)
jsonArray
jsonObject.get**(key)
key
exception
try...catch...
jsonObject
opt**(key)
try catch
如果多个界面使用这个json,每个adapter里都要jsonObj.get**(key),万一服务器改字段,你就只能每个Activity去找这个json,改代码了....如果用javaBean,IDE能直接修改整个工程javaBean成员名。
json
adapter
jsonObj.get**(key)
Activity
javaBean
还有debug和代码补全问题,javaBean调用成员or函数,可以用代码补全。例如要用user.name,打user.n+快捷键,n开头的成员/函数就弹出来了,是不是很方便? 如果从json中获取某字段,呵呵,打json.g+快捷键->json.get**还要选字段类型->json.getString("") 此时key还得自己写字符串....万一写错了.... 想想都烦
debug
代码补全
user.name
user.n
n
json.g
json.get**
json.getString("")
楼主乖乖用javaBean吧!json直接转javaBean可以用Gson或者fastjson,两个库有各自优缺点,自行体会。
Gson
fastjson
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
如果有持久化需求的话,这种做法就非常不好, 根本用不了orm。
从代码可读性来讲,也不推荐这么做,毕竟你看见的都是jsonObject,很容易头晕。而且哪天服务端字段改了,就只好在那哭了。
综上所述,非常不推荐这样的做法。
有利于代码的重用,代码的封装,增加安全性 同时这也是一种面向对象的思想。
本人射手座,对IDE使用有洁癖,势必要快捷键顺手、补全代码容易....
言归正传,
jsonArray.get***(index),是有风险的,如果jsonArray就是数组,长度不够你exception;jsonObject.get**(key),如果key不存在,也有exception抛出.... 如果楼主这么写,势必万山遍野的try...catch...烦不烦? 虽然jsonObject有opt**(key)方法,但最好还是加try catch。如果多个界面使用这个
json,每个adapter里都要jsonObj.get**(key),万一服务器改字段,你就只能每个Activity去找这个json,改代码了....如果用javaBean,IDE能直接修改整个工程javaBean成员名。还有
debug和代码补全问题,javaBean调用成员or函数,可以用代码补全。例如要用user.name,打user.n+快捷键,n开头的成员/函数就弹出来了,是不是很方便? 如果从json中获取某字段,呵呵,打json.g+快捷键->json.get**还要选字段类型->json.getString("")此时key还得自己写字符串....万一写错了.... 想想都烦楼主乖乖用
javaBean吧!json直接转javaBean可以用Gson或者fastjson,两个库有各自优缺点,自行体会。