V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  james2013  ›  全部回复第 50 页 / 共 50 页
回复总数  991
1 ... 41  42  43  44  45  46  47  48  49  50  
@huclengyue
1.ios 中没有 true 或者 false,这个是很多替代方法:
1)比如 ios 本地处理(不会 IOS,这这只是从网上搜索的,结果待验证,我想是有解决办法) "manage":true BOOL manage = [[content objectForKey:@"manage"] boolValue];
2)实在不行,规定以 1,0 代替 或者字符串值来代替 true 或 false
2.json 中我才不管你是 php 还是 java 后台,我公司后台 java/php/.net 都有,人家也不会告诉是什么类型,我也是根据接口返回值自己进行修改,觉得用户 id,订单 id 等需要 long 类型,就修改了.以前还真遇到过 GsonFormat 自动生成的是 int,但是实际上是 long 类型的.
2018-05-19 23:24:01 +08:00
回复了 KomeijiSatori 创建的主题 程序员 惊了 Java 转岗写 PHP 的都喜欢把代码写的这么复杂么
PHP 不懂,只是说下 Java 的感受.
这种是 Java 后端的一把梭,方便解耦,小项目觉得多余,项目大了维护性还是比较好的.如下
request ->xx Controller ->xxService(接口,空方法)->xxServiceImpl(具体实现方法,调用 xxDao)
当然是第二种好用,本人开发过 Android 应用软件和 Java 后台.以下只是个人看法

@huclengyue json 本来就是一个对象,在 js 里可以直接用.在 Android,都不敢想象现在谁还去手写 json 解析对象?数据又不少,里面嵌了好几层对象,有的接口像订单详情字段特多,手写会崩溃的.早就用 GsonFormat 将接口结果进行自动解析,后台搞成全 string 的,我都要吐血了.

@hyyou2010 至于第二种方法,说后台扔一个 null 值给客户端不好处理,我不这么认为.
楼层中有人说的好,还有一个问题,比如人家把个人资料里描述改成字符串,返回是这样{desc:"null"},用第一种方法,我觉得不好处理.这个是代表该字段没有值还是说"null",歧义很大.第二种的话,就简单了,该字段是{desc:null}或者根本没有返回,说明该字段没有值,如果是{desc:"null"},那说明这是用户设置的.总不可能把客户输入的自动删除掉吧?刚才我试了微信签名,可以单独设置 null.

对于后台返回的数据,是先通过 json 解析工具自动转成对象的.传 null 过来很正常,本来有的内部对象 /字段是 null,因为该对象 /字段本来就没有数据,在展示的时候,也会先验证.
比如是对象,验证是否为 null;如果是集合,还需验证集合大小大于 0,要不然,一堆空指针报错,因为同一个接口有的地方是有数据,有的没有.
列举的 3 个问题,这个跟 json 格式没有关系呀.
1,2 这种是交接和沟通问题,开发新接口,客户端需要把数据正常显示在 app 上,后台返回错误的格式 /数据也常见,叫后台重新发布,因为项目是采用统一格式返回的.比如{retCode:1,message:"xxx",result:{...}},改了的话很不好.如果是已发布的代码,后台还敢修改接口字段类型和名称,已上线版本容易出大问题的.一般这种是加版本号,而不是在原来版本修改.
3.的话,我也是承认的,加班疲惫时总会有出错的时候,做第一个也会的.
以前也是用 BBCCBB 的方法,cqy2016 说的很好,试了下,完美解决楼主的问题,并且做了其它几个方面的适配:
@ControllerAdvice
public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> {

@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
if("org.springframework.http.converter.json.MappingJackson2HttpMessageConverter".equals(converterType.getName())){
return true;
}
return false;
}

@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
if(body instanceof BaseResponseBean) return body;
return ResponseUtil.turnData(body);
}
}
2018-04-20 21:34:30 +08:00
回复了 xiaoyu9527 创建的主题 程序员 我想把我自己的台式 PC 搬到公司怎么样?
这么 6,公司电脑卡,又不升级配置.我也想自己换 ssd
2018-04-07 22:23:03 +08:00
回复了 91Git 创建的主题 云计算 老哥们你们的腾讯云这两天还好吗
没问题,昨天晚上登了,刚才也试了,服务器在广州
2018-03-27 22:10:40 +08:00
回复了 wowhyw 创建的主题 酷工作 [创业] 求 IOS 开发 Android 开发大牛合伙创业
1 楼说的对,画的饼还不知道是什么样,还是要拿出诚意,说出月薪是多少
2017-10-22 22:53:06 +08:00
回复了 oisc 创建的主题 分享发现 你们用支付宝尴尬吗?
支付宝不仅速度慢,还有众多恶心的红点和红数字提醒,然后,我已经习惯微信支付了。
1 ... 41  42  43  44  45  46  47  48  49  50  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2983 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 14:02 · PVG 22:02 · LAX 06:02 · JFK 09:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.