首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  Android

我司后端接口是这样的,而我恰恰又是个 Android

  •  
  •   Ponze · 109 天前 · 9252 次点击
    这是一个创建于 109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    16181564455780_.pic_hd.jpg

    你们公司遇到过吗?

    86 回复  |  直到 2019-08-01 12:48:56 +08:00
        1
    lihongjie0209   109 天前
    接口没法改的话自己做转化吧
        2
    xiaozhu5   109 天前
    好在我们公司后端没这么坑
        3
    taogen   109 天前 via Android
    用 0 1 2 来作 key 好奇葩啊
        4
    zjsxwc   109 天前
    内容不固定的中文数据作为 json key,666
        5
    zjsxwc   109 天前
        6
    Baymaxbowen   109 天前
    提刀去沟通一下
        7
    sunday1   109 天前
    就说这样你不高兴。让他以后别这样了
        8
    micean   109 天前
    0,1,2 做 KEY 的,NGA 就是这样的
    中文 KEY 我原来还真用过,某个动态报表,实在懒得起个英文名……
        9
    Telegram   109 天前   ♥ 7
    为啥都喜欢往 loli.net 这个图床传图片,感觉很卡啊,而且经常挂掉
        10
    qinfensky   109 天前 via iPhone
    很久前我也遇到这样的后端,给我的 key 是不明确了,还说自己没办法,后端就是这样的,哈哈啊哈
        11
    ye4tar   109 天前
    这事问题不大,先和后端友好协商,同时也需要把项目负责人叫来确认,他们对此做法都无异议,你就写起来。你要保证你解析的方式绝对不会出现问题,他要是把 JSON 数据次序搞乱了,出现崩溃等各种不可预知的问题,你就告诉她为什么出现这种情况,当初他们可是点了头的。
        12
    passerbytiny   109 天前   ♥ 2
    楼上的,0 1 2 不是 key,是数组索引在 JSON 转换的时候被切换成了 KEY。这个转换方法我以前见过,但是忘了是啥原因了,貌似是某些语言没有数组,所以数组只能用这种形式传过去。

    如果你们后端是 Java 的话,请考虑建议老板开了他,Java 的 JSON 序列化框架从来不会默认转换成这种形式,能搞出这种形式,极有可能是开发人员使用了复制粘贴大法,并且既没有自审代码,也测试。

    然后纵表数据出数据库后,不转换成对象形式,也是极度不负责任的。
        13
    liuxey   109 天前
    @Telegram #9 像 loli 这么毫无要求的图床已经不多了,主要是服务器不在国内所以有点慢,总比 imgur 访问不了和 sina 的 403 好
        14
    Telegram   109 天前
    @liuxey #12 刚刚这个图一直刷不出来,挂代理也刷不出来,现在又好了。相当不稳定。
    感觉微博的图床还不错,不过现在好像加了防盗链,会检查 referer
        15
    Mogugugugu   109 天前
    动态报表,用户自定义的字段,要强制用户输入英文吗?大佬们给个解决方案哇 = =
        16
    gz911122   109 天前
    我赌 5 毛钱 你们后端是 php
        17
    reus   109 天前
    PHP ?数组和字典混用的垃圾
        18
    colaman   109 天前
    @passerbytiny 百分之百是 PHP,以前公司就是在这样,时不时冒出这种 0123,还跟我说没办法修复,笑死了
        19
    zhzbql   109 天前
    @colaman php 直接用 unset 销毁数组元素就会这样,unset 后索引数组实际转为关联数组,JSON 化后转 js 对象而不是数组
        20
    sanggao   109 天前
    这个后端是 php 的 哈哈哈 因为我也是后端 php 的,以前碰到过同时写的,我都替客户端委屈
        21
    yuann72   109 天前
    加个 array_values 的事,叫后端改下就行了
        22
    wjh825998772   109 天前 via iPhone
    哈哈哈😄,PHP 背锅
        23
    iweus   109 天前
    不要问,问就是 PHP
        24
    ganbuliao   109 天前   ♥ 1
    phper 表示 写接口 从未输出过这种格式 :dog
        25
    hhhsuan   109 天前 via Android
    0123 是代表次序吗?如果不是而只是随便起个名字,而你也不关心 key 只关心 value 的话,我觉得这样也可以凑活。
        26
    killerv   109 天前
    就是这群人败坏的 php
        27
    virus94   109 天前
    PHP 不背这个锅
        28
    Erroad   109 天前
    三四千块的 php 后端?
        29
    starsriver   109 天前 via Android
    @reus
    @gz911122
    拍黄片表示不背锅。凭什么这么污蔑拍黄片。明显是 node 的问题。
        30
    wulongqiu   109 天前
    array_values
        31
    cnoder   109 天前
    哈哈哈哈
        32
    gz911122   109 天前
    @starsriver 目前来说 node 程序员对于接口约定还是比较好的
    毕竟大部分 node 都写过前端.不会接口搞得很....emmmm
        33
    susucoolsama   109 天前
    array_values,这个是 php 的锅要接。
        34
    madadimy   109 天前
    我们后端的 PHP 也喜欢这么写, 他不给我改成数组我就不往下写 正面刚
        35
    HangoX   109 天前
    估计是不注意就这样了,提醒一下
        36
    luozic   109 天前 via iPhone
    这尼玛 key 得可以
        37
    flyingghost   109 天前
    后端是 PHP 无疑。
    这个问题不仅仅因为后端垃圾,还因为你们的技术经理、项目经理、架构师等相关角色缺失或者垃圾。
        38
    Vtwoguest   109 天前
    这种代码 出问题你很容易背锅.. 趁早澄清
        39
    rrfeng   109 天前
    既然用 0 1 2 当 key 为啥不用数组?
    真的有这样的设计的,比如 InfluxDB,返回数据全部格式都是数组套数组。只要定义没有歧义,容易理解就很 ok 了。
        40
    xwxw   109 天前
    直接解析成多层 Map
        41
    xpxw   109 天前   ♥ 1
    谁 tm 说这是 php 的锅了???
        42
    mostkia   109 天前   ♥ 1
    @reus php 只是编程语言,我们暂且不讨论它是不是宇宙第一好的编程语言,但就其本身而言,它只是一个工具,编程语言再烂,也不是个人代码写的烂的理由,用的人是 shit,不管什么编程语言,写出来的代码都是 shit。代码习惯得靠自己,不要指望编译器做这些事情。接口写出来用中文 key,本身就是没有职业素养的表现。
        43
    yymcct   109 天前
    笑抽...
        44
    0x000007   109 天前
    这锅肯定是写 php 的背
        45
    rookiewhy   109 天前
    对 php 部了解,为啥我之前的公司后端是 java,很少出现 json 格式的问题,现在的公司后端是 php,日常格式出问题?
        46
    wyc130323   109 天前
    我 php 背下这口锅了
        47
    damaerguo912   109 天前
    谁 tm 说这是 php 的锅了???
        48
    Airon   109 天前
    这个后端菜和拍黄片有啥关系,别人拿刀砍你你怪刀么
        49
    skiy   109 天前
    没重置 key。如果是 PHP,得 sort 一下了。

    这个 "key" 有没有意义的先,如果是 ID 之类的,那也没什么问题。
    我猜是合并数据时用了这个 KEY 来作为合并的索引,最后又没重置。
        50
    HuasLeung   109 天前 via Android
    锅从天上来
        51
    jackcfan   109 天前
    这后端绝壁是 PHP,我也遇到过合作伙伴是 php 连个 json 数组序列化惨不忍睹
        52
    orqzsf1   109 天前
    ```
    // laravel 的 json 输出会乱序,加 key 确保顺序不会乱
    ```

    /滑稽
        53
    1oNflow   109 天前 via iPhone
    这是 json 里面的数组,Google firebase 就是这么显示的,后端用 node 直接按数组处理(.map)没问题。
        54
    Soar360   109 天前
    壮哉,我大 PHP。
        55
    ylw   109 天前
    没人觉得 singleEelection multipleselection 这语法的问题吗 selection 第一个还拼写成 election
        56
    TangMonk   109 天前
    又黑我大 PHP
        57
    littleangel   109 天前 via iPhone
    日常黑我最好的语言。
        58
    vishun   109 天前 via Android
    php 也不会出现这种啊,一般会是图中红色 data 数组这种。
        59
    somebody   109 天前 via Android
    使用 gson 自定义 adapter 可破。之前也设计过类似的 json,可参考这个项目 https://github.com/wuairc/heterogeneous-json-list。另外我也是 Android
        61
    somebody   109 天前 via Android
    😂 后面加了空格也不行,地址 https://github.com/wuairc/heterogeneous-json-list
        62
    kooritea   109 天前 via Android
    楼主提刀过去被反杀了?倒是吱一声啊
        63
    lonelygo   109 天前
    #62 @kooritea 我觉得目前为止,你的回答最靠谱。
        64
    janxin   108 天前 via iPhone
    你们后端是 php
        65
    qilishasha   108 天前
    明显是数组自动转换而来的嘛……
        66
    twoyuan   108 天前 via Android
    看标题就知道一定有动态 key
        67
    abcbuzhiming   108 天前
    @taogen 有的公司迷信这样能混淆数据,故意这么干
        68
    imnpc   108 天前
    后端明显是 PHP
    数组做过 unset 操作的
    我一般下面 sort 下就正常了
        69
    ugu   108 天前
    笑死了,哈哈哈哈哈哈哈
        70
    keepeye   108 天前
    $arr = ['a', 'b', 'c'=>'111'];
    echo json_encode($arr);


    // 肯定是这种情况 233333
        71
    miaotaizi   108 天前
    有问题跟同事沟通啊, 难道你想让他在刷 v2 的时候 能看到这个帖子?
        72
    polymerdg   108 天前
    MMP 老子 居然每看懂 是啥毛病
        73
    urmyfaith   108 天前
    哈哈,php 无疑.
        74
    lwb   108 天前
    这 nm 沟通的问题,跟 PHP 有毛关系,不背这个锅
        75
    luopengfei14   108 天前 via iPhone
    @polymerdg 用数字表示 key …
        76
    fbu11   108 天前
    遇到这种 PHP 就直接硬怼
        77
    hyy1995   108 天前
    让我想起了一年半之前,在郑州的时候,当时公司 PHP 后端就给我返这种数据,用数字当 key。。。
        78
    jhdxr   108 天前
    讲道理就算数组做过 unset,只要 unset 的不是中间的元素,也不会出现数字作为 key 啊。。。

    ```
    $a=[1,2,3];
    unset($a[2]);
    json_encode($a); // "[1,2]"

    $a=[1,2,3];
    unset($a[1]);
    json_encode($a); // "{"0":1,"2":3}"
    ```


    你们的后端到底做了什么神奇的操作
        79
    wh1012023498   108 天前
    啥都不考虑 就告诉后端 用 array_values,现在的 PHP 坑的跟狗一样。。。
        80
    NjcyNzMzNDQ3   108 天前
    存在即合理,明明是人的问题,@reus 你估计是个语言黑或者引战的?
        81
    knightlhs   108 天前
    PHP 不背这个锅 鬼知道你们后端开发做了啥
        82
    securityCoding   108 天前
    这样写出来也蛮耗费精力的
        83
    wo642436249   108 天前
    666,无凭无据推给 php
    @wh1012023498
    @fbu11
    @hyy1995
    @jackcfan,除非只有 php 能实现这样的结构,这如果只有 php 能实现这样的结构,说明其他语言都是渣渣
        84
    en20   107 天前
    c,我今天也碰到了,后端还正好是 php,banners 是轮播图数组,空的时候他传了个 "" 给我
    {
    "status": 1,
    "msg": "",
    "data": {
    "0": {
    "id": 3,
    "title": "123",
    "type_id": 3,
    "image_id": 496,
    "banners": "",
        85
    caijihui11   107 天前
    今天刚好遇到这种格式的返回,数组转化,强制设置了数字的 key , 找后端改一下数组格式吧,都是能接受的。
        86
    sizhe   107 天前
    中文做 Key 确实不妥,至少改成 user_name 的英文吧。。。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   832 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 31ms · UTC 21:31 · PVG 05:31 · LAX 13:31 · JFK 16:31
    ♥ Do have faith in what you're doing.