为了账号安全,请及时绑定邮箱和手机立即绑定

Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?

Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?

郎朗坤 2019-03-20 18:19:47
  List<HashMap> reList = new ArrayList<HashMap>();                      for(int i=0;i<bjdList.size();i++){                          Zqwl_yd_jdxx bjd = bjdList.get(i);                          HashMap temp = new HashMap();                          temp.put("id",bjd.getId());                          temp.put("yd_number",bjd.getYd_number());                          temp.put("status",bjd.getStatus());                          reList.add(temp);                      }                                 str = JSONValue.toJSONString(reList);                 response.getWriter().write(str);我写后台的接口,ios的程序员说必须标注每一个值得类型(string int 。。。)Android的程序员就不用?转正json返回之后不都是字符串了吗?为什么还要标注出int类型?
查看完整描述

8 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

既然是协议,就要双方约定好,最好有接口文档说明,json虽然只是字符串,但里面的值是有类型区别的,android说他不用标注也许只是他觉得他能看懂你json数据的类型(但不一定是你后端本来想给的数据类型,比如你给float型,他用double取,对于精度要求不高的数值,是没什么区别的),而iOS的可能想清楚严谨一点,他想确定确切的值类型,这时候一定要统一一下,要不以后出问题了你们就说不清了。

查看完整回答
反对 回复 2019-04-19
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

json本来就只是字符串而已。
并不需要,我跟ios程序员对接的时候并没有这类问题。

查看完整回答
反对 回复 2019-04-19
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我觉得让你标注出来是对的。
我遇到过NSNumber,和NSString 这个导致程序崩溃的问题

查看完整回答
反对 回复 2019-04-19
?
12345678_0001

TA贡献1802条经验 获得超5个赞

实际是JSON是有类型的,""扩起来的才是字符串,"value":"1" 和 "value":1是不同的,
当然IOS说的一定要标注,只是他那边不想处理,希望后台能处理好直接用,android只是帮你处理了而已。

这不分谁对谁错,而只是谁愿意多做点。


查看完整回答
反对 回复 2019-04-19
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

Json只是一种格式,在接收时可以把他都当做字符串,但在解析的时候的时候值是分类型的


查看完整回答
反对 回复 2019-04-19
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

oia文档呢,没oia起码要有json schema吧


查看完整回答
反对 回复 2019-04-19
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

不需要,map也能够直接解析


{"aaa,bbb";"aaa,bbb"}


   ArrayMap arrayMap = new ArrayMap();

      try {

           org.json.JSONObject obj = new org.json.JSONObject(content);

           Iterator<String> iterator = obj.keys();

           while (iterator.hasNext()) {

               String key = iterator.next();

               String value = (String) obj.get(key);

               arrayMap.put(key, value);

            }

        } catch (JSONException e) {

            e.printStackTrace();

      }


查看完整回答
反对 回复 2019-04-19
  • 8 回答
  • 0 关注
  • 725 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号