你们公司遇到过吗?
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 2
楼上的,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 1
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
Vtwoguest 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 1
谁 tm 说这是 php 的锅了???
|
42
mostkia 2019-07-30 16:54:30 +08:00 1
@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 的英文吧。。。
|