Ponze
V2EX  ›  Android

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

  •  
  •   Ponze · Jul 30, 2019 · 24434 views
    This topic created in 2652 days ago, the information mentioned may be changed or developed.

    16181564455780_.pic_hd.jpg

    你们公司遇到过吗?

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

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

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

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

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


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


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