

你们公司遇到过吗?
1 lihongjie0209 2019-07-30 11:20:35 +08:00 接口没法改的话自己做转化吧 |
2 xiaozhu5 2019-07-30 11:22:58 +08:00 好在我们公司后端没这么坑 |
3 taogen 2019-07-30 11:25:14 +08:00 via Android 用 0 1 2 来作 key 好奇葩啊 |
4 zjsxwc 2019-07-30 11:31:35 +08:00 内容不固定的中文数据作为 json key,666 |
5 zjsxwc 2019-07-30 11:39:40 +08:00 |
6 Baymaxbowen 2019-07-30 11:39:57 +08:00 提刀去沟通一下 |
7 sunday1 2019-07-30 11:45:32 +08:00 就说这样你不高兴。让他以后别这样了 |
8 micean 2019-07-30 11:46:10 +08:00 0,1,2 做 KEY 的,NGA 就是这样的 中文 KEY 我原来还真用过,某个动态报表,实在懒得起个英文名…… |
10 qinfensky 2019-07-30 11:53:06 +08:00 via iPhone 很久前我也遇到这样的后端,给我的 key 是不明确了,还说自己没办法,后端就是这样的,哈哈啊哈 |
11 LLaMA2 2019-07-30 11:54:55 +08:00 这事问题不大,先和后端友好协商,同时也需要把项目负责人叫来确认,他们对此做法都无异议,你就写起来。你要保证你解析的方式绝对不会出现问题,他要是把 JSON 数据次序搞乱了,出现崩溃等各种不可预知的问题,你就告诉她为什么出现这种情况,当初他们可是点了头的。 |
12 passerbytiny 2019-07-30 11:57:26 +08:00 楼上的,0 1 2 不是 key,是数组索引在 JSON 转换的时候被切换成了 KEY。这个转换方法我以前见过,但是忘了是啥原因了,貌似是某些语言没有数组,所以数组只能用这种形式传过去。 如果你们后端是 Java 的话,请考虑建议老板开了他,Java 的 JSON 序列化框架从来不会默认转换成这种形式,能搞出这种形式,极有可能是开发人员使用了复制粘贴大法,并且既没有自审代码,也测试。 然后纵表数据出数据库后,不转换成对象形式,也是极度不负责任的。 |
13 liuxey 2019-07-30 11:58:49 +08:00 @Telegram #9 像 loli 这么毫无要求的图床已经不多了,主要是服务器不在国内所以有点慢,总比 imgur 访问不了和 sina 的 403 好 |
14 Telegram 2019-07-30 12:01:34 +08:00 @liuxey #12 刚刚这个图一直刷不出来,挂代理也刷不出来,现在又好了。相当不稳定。 感觉微博的图床还不错,不过现在好像加了防盗链,会检查 referer |
15 Mogugugugu 2019-07-30 12:11:39 +08:00 动态报表,用户自定义的字段,要强制用户输入英文吗?大佬们给个解决方案哇 = = |
16 gz911122 2019-07-30 12:26:59 +08:00 我赌 5 毛钱 你们后端是 php |
17 reus 2019-07-30 12:59:23 +08:00 PHP ?数组和字典混用的垃圾 |
18 colaman 2019-07-30 13:02:23 +08:00 @passerbytiny 百分之百是 PHP,以前公司就是在这样,时不时冒出这种 0123,还跟我说没办法修复,笑死了 |
19 zhzbql 2019-07-30 13:12:41 +08:00 @colaman php 直接用 unset 销毁数组元素就会这样,unset 后索引数组实际转为关联数组,JSON 化后转 js 对象而不是数组 |
20 sanggao 2019-07-30 13:14:07 +08:00 这个后端是 php 的 哈哈哈 因为我也是后端 php 的,以前碰到过同时写的,我都替客户端委屈 |
21 yuann72 2019-07-30 13:14:37 +08:00 加个 array_values 的事,叫后端改下就行了 |
22 wjh825998772 2019-07-30 13:16:51 +08:00 via iPhone 哈哈哈,PHP 背锅 |
23 iweus 2019-07-30 13:25:59 +08:00 不要问,问就是 PHP |
24 ganbuliao 2019-07-30 13:33:02 +08:00 phper 表示 写接口 从未输出过这种格式 :dog |
25 hhhsuan 2019-07-30 13:37:23 +08:00 via Android 0123 是代表次序吗?如果不是而只是随便起个名字,而你也不关心 key 只关心 value 的话,我觉得这样也可以凑活。 |
26 killerv 2019-07-30 13:38:30 +08:00 就是这群人败坏的 php |
27 virus94 2019-07-30 13:41:02 +08:00 PHP 不背这个锅 |
28 Erroad 2019-07-30 14:02:40 +08:00 三四千块的 php 后端? |
29 starsriver 2019-07-30 14:05:25 +08:00 via Android |
30 wulongqiu 2019-07-30 14:07:09 +08:00 array_values |
31 cnoder 2019-07-30 14:10:59 +08:00 哈哈哈哈 |
32 gz911122 2019-07-30 14:21:43 +08:00 @starsriver 目前来说 node 程序员对于接口约定还是比较好的 毕竟大部分 node 都写过前端.不会接口搞得很....emmmm |
33 susucoolsama 2019-07-30 14:26:58 +08:00 array_values,这个是 php 的锅要接。 |
34 madadimy 2019-07-30 14:30:11 +08:00 我们后端的 PHP 也喜欢这么写, 他不给我改成数组我就不往下写 正面刚 |
35 HangoX 2019-07-30 14:37:25 +08:00 估计是不注意就这样了,提醒一下 |
36 luozic 2019-07-30 14:43:25 +08:00 via iPhone 这尼玛 key 得可以 |
37 flyingghost 2019-07-30 14:55:05 +08:00 后端是 PHP 无疑。 这个问题不仅仅因为后端垃圾,还因为你们的技术经理、项目经理、架构师等相关角色缺失或者垃圾。 |
38 plp 2019-07-30 15:47:54 +08:00 这种代码 出问题你很容易背锅.. 趁早澄清 |
39 rrfeng 2019-07-30 15:51:00 +08:00 既然用 0 1 2 当 key 为啥不用数组? 真的有这样的设计的,比如 InfluxDB,返回数据全部格式都是数组套数组。只要定义没有歧义,容易理解就很 ok 了。 |
40 xwxw 2019-07-30 16:02:28 +08:00 直接解析成多层 Map |
41 xpxw 2019-07-30 16:33:27 +08:00 谁 tm 说这是 php 的锅了??? |
42 mostkia 2019-07-30 16:54:30 +08:00 @reus php 只是编程语言,我们暂且不讨论它是不是宇宙第一好的编程语言,但就其本身而言,它只是一个工具,编程语言再烂,也不是个人代码写的烂的理由,用的人是 shit,不管什么编程语言,写出来的代码都是 shit。代码习惯得靠自己,不要指望编译器做这些事情。接口写出来用中文 key,本身就是没有职业素养的表现。 |
43 yymcct 2019-07-30 16:55:45 +08:00 笑抽... |
44 0x000007 2019-07-30 16:57:02 +08:00 这锅肯定是写 php 的背 |
45 rookiewhy 2019-07-30 17:01:28 +08:00 对 php 部了解,为啥我之前的公司后端是 java,很少出现 json 格式的问题,现在的公司后端是 php,日常格式出问题? |
46 wyc130323 2019-07-30 17:01:30 +08:00 我 php 背下这口锅了 |
47 damaerguo912 2019-07-30 17:04:22 +08:00 谁 tm 说这是 php 的锅了??? |
48 Airon 2019-07-30 17:08:58 +08:00 这个后端菜和拍黄片有啥关系,别人拿刀砍你你怪刀么 |
49 skiy 2019-07-30 17:32:27 +08:00 没重置 key。如果是 PHP,得 sort 一下了。 这个 "key" 有没有意义的先,如果是 ID 之类的,那也没什么问题。 我猜是合并数据时用了这个 KEY 来作为合并的索引,最后又没重置。 |
50 BCy66drFCvk1Ou87 2019-07-30 17:35:16 +08:00 via Android 锅从天上来 |
51 jackcfan 2019-07-30 17:42:34 +08:00 这后端绝壁是 PHP,我也遇到过合作伙伴是 php 连个 json 数组序列化惨不忍睹 |
52 orqzsf1 2019-07-30 17:44:39 +08:00 ``` // laravel 的 json 输出会乱序,加 key 确保顺序不会乱 ``` /滑稽 |
53 1oNflow 2019-07-30 17:55:59 +08:00 via iPhone 这是 json 里面的数组,Google firebase 就是这么显示的,后端用 node 直接按数组处理(.map)没问题。 |
54 Soar360 2019-07-30 17:59:01 +08:00 壮哉,我大 PHP。 |
55 ylw 2019-07-30 18:14:55 +08:00 没人觉得 singleEelection multipleselection 这语法的问题吗 selection 第一个还拼写成 election |
56 TangMonk 2019-07-30 18:27:44 +08:00 又黑我大 PHP |
57 littleangel 2019-07-30 19:06:57 +08:00 via iPhone 日常黑我最好的语言。 |
58 vishun 2019-07-30 19:33:57 +08:00 via Android php 也不会出现这种啊,一般会是图中红色 data 数组这种。 |
59 somebody 2019-07-30 23:34:29 +08:00 via Android 使用 gson 自定义 adapter 可破。之前也设计过类似的 json,可参考这个项目 https://github.com/wuairc/heterogeneous-json-list。另外我也是 Android |
60 somebody 2019-07-30 23:35:21 +08:00 via Android |
61 somebody 2019-07-30 23:36:12 +08:00 via Android 后面加了空格也不行,地址 https://github.com/wuairc/heterogeneous-json-list |
62 kooritea 2019-07-31 00:07:09 +08:00 via Android 楼主提刀过去被反杀了?倒是吱一声啊 |
64 janxin 2019-07-31 07:13:06 +08:00 via iPhone 你们后端是 php |
65 qilishasha 2019-07-31 07:58:47 +08:00 明显是数组自动转换而来的嘛…… |
66 twoyuan 2019-07-31 08:52:01 +08:00 via Android 看标题就知道一定有动态 key |
67 abcbuzhiming 2019-07-31 09:00:40 +08:00 @taogen 有的公司迷信这样能混淆数据,故意这么干 |
68 imnpc 2019-07-31 09:02:29 +08:00 后端明显是 PHP 数组做过 unset 操作的 我一般下面 sort 下就正常了 |
69 ugu 2019-07-31 09:16:35 +08:00 笑死了,哈哈哈哈哈哈哈 |
70 keepeye 2019-07-31 09:23:58 +08:00 $arr = ['a', 'b', 'c'=>'111']; echo json_encode($arr); // 肯定是这种情况 233333 |
71 miaotaizi 2019-07-31 09:24:51 +08:00 有问题跟同事沟通啊, 难道你想让他在刷 v2 的时候 能看到这个帖子? |
72 polymerdg 2019-07-31 09:26:52 +08:00 MMP 老子 居然每看懂 是啥毛病 |
73 urmyfaith 2019-07-31 09:41:02 +08:00 哈哈,php 无疑. |
74 lwb 2019-07-31 10:21:06 +08:00 这 nm 沟通的问题,跟 PHP 有毛关系,不背这个锅 |
75 luopengfei14 2019-07-31 10:29:58 +08:00 via iPhone @polymerdg 用数字表示 key … |
76 fbu11 2019-07-31 10:39:24 +08:00 遇到这种 PHP 就直接硬怼 |
77 hyy1995 2019-07-31 10:41:18 +08:00 让我想起了一年半之前,在郑州的时候,当时公司 PHP 后端就给我返这种数据,用数字当 key。。。 |
78 jhdxr 2019-07-31 10:51:46 +08:00 讲道理就算数组做过 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 2019-07-31 11:34:54 +08:00 啥都不考虑 就告诉后端 用 array_values,现在的 PHP 坑的跟狗一样。。。 |
80 NjcyNzMzNDQ3 2019-07-31 14:05:28 +08:00 存在即合理,明明是人的问题,@reus 你估计是个语言黑或者引战的? |
81 knightlhs 2019-07-31 17:51:55 +08:00 PHP 不背这个锅 鬼知道你们后端开发做了啥 |
82 securityCoding 2019-07-31 17:56:11 +08:00 这样写出来也蛮耗费精力的 |
83 wo642436249 2019-07-31 18:01:30 +08:00 666,无凭无据推给 php @wh1012023498 @fbu11 @hyy1995 @jackcfan,除非只有 php 能实现这样的结构,这如果只有 php 能实现这样的结构,说明其他语言都是渣渣 |
84 en20 2019-08-01 09:15:40 +08:00 c,我今天也碰到了,后端还正好是 php,banners 是轮播图数组,空的时候他传了个 "" 给我 { "status": 1, "msg": "", "data": { "0": { "id": 3, "title": "123", "type_id": 3, "image_id": 496, "banners": "", |
85 caijihui11 2019-08-01 09:47:46 +08:00 今天刚好遇到这种格式的返回,数组转化,强制设置了数字的 key , 找后端改一下数组格式吧,都是能接受的。 |
86 sizhe 2019-08-01 12:48:56 +08:00 中文做 Key 确实不妥,至少改成 user_name 的英文吧。。。 |