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

 霸气的饭桶丶_130 发布于 2022-10-27 20:10
               List reList = new ArrayList();
                      for(int i=0;i

我写后台的接口,ios的程序员说必须标注每一个值得类型(string int 。。。)Android的程序员就不用?转正json返回之后不都是字符串了吗?为什么还要标注出int类型?

9 个回答
  • 不需要,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();
          }
    2022-10-29 03:02 回答
  • oia文档呢,没oia起码要有json schema吧

    2022-10-29 03:04 回答
  • Json只是一种格式,在接收时可以把他都当做字符串,但在解析的时候的时候值是分类型的

    2022-10-29 03:07 回答
  • 这个问题的核心在于准确理解JSON这种格式的定义
    JSON中的控制字符
    { 键-值对容器(A collection of name/value pairs)的开始
    } 键-值对容器的结束
    [ 数组容器的开始
    ] 数组容器的结束
    : 键-值对分隔符
    “ 字符串的开始或者结束
    , 容器内部的分隔符
    JSON中的值的类型
    string 两个双引号中间的部分,官网原文是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串 在OC中的表现为NSString对象
    number 以字符’0’或‘9’开头,官网原文除去未曾使用的八进制与十六进制格式, 在OC中的表现为NSNumber对象.
    object 对象类型,在OC中的表现为NSDictionary
    值的有序列表(An ordered list of values),俗称array,在OC中的表现为NSArray
    null null对象,空对象,在OC中的表现为NSNull
    bool true/false 由于OC中并没有关于Boolean对象的存在,所以在OC中的表现为NSNumber

    可以看我的播客
    http://cocoa1024.com/2016/03/31/stackjson/

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

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

    2022-10-29 03:13 回答
  • 我觉得让你标注出来是对的。
    我遇到过NSNumber,和NSString 这个导致程序崩溃的问题

    2022-10-29 03:14 回答
  • 不用标注的 ~

    2022-10-29 03:20 回答
  • json本来就只是字符串而已。
    并不需要,我跟ios程序员对接的时候并没有这类问题。

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

    2022-10-29 03:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有