[ { "name":"apple", "price":"10" }, { "name":"peach", "price":"10" }, { "name":"beach", "price":"10" } ]
{"apple":"10","peach":"10","beach":"10"}
可以用下面的方式返回数据吗,这样的话查 apple 的价格会很方便
1
securityCoding 2020-11-30 15:38:39 +08:00
不行,用 1
|
2
KIMMG 2020-11-30 15:39:47 +08:00
这个不是可不可以的问题,而是要不要的问题。
当然可以。但是对于消费者来说,他不明白你的 key 和 value 的意义。除非你的接口 uri 很明显 |
3
liyang5945 2020-11-30 15:50:23 +08:00 1
这种帖每隔一段时间就会冒出来,参考 /t/661896
|
4
qiayue 2020-11-30 15:50:43 +08:00
简单点说,就是方式 2 前端 foreach 不方便
|
5
rodrick 2020-11-30 16:01:14 +08:00
之前就有个帖子专门骂这种返回格式的,数据量不大沟通好了 2 也不是不行,但是 key 最好就是字段名,value 就是值,维护方便看的也舒服
|
6
oneisall8955 2020-11-30 16:08:04 +08:00 via Android
月经贴
|
7
mirrorpen 2020-11-30 16:09:38 +08:00
自己写给自己用开心就好,给别人用会被砍
|
8
tabris17 2020-11-30 16:09:55 +08:00 1
{
"apple": {"name": "apple", "price" : 10}, "peach": {"name": "peach", "price" : 10}, "beach": {"name": "beach", "price" : 10} } |
9
xuanbg 2020-11-30 16:10:26 +08:00
第一种前端好处理,也是通常大家使用的方式。一个集合序列化成 JSON 就是这种格式,后端也方便。
第二种可以在特殊情况下使用,譬如一次性数据量非常大,节约的字节数还是很可观的。 |
10
DOLLOR 2020-11-30 16:13:22 +08:00 via Android
任何时候都应该选择第一种写法,除非用第二种写法能加工资。
|
11
zeropercenthappy 2020-11-30 16:13:25 +08:00
@tabris17 我刀收不住了,你别跑
|
12
tabris17 2020-11-30 16:15:54 +08:00
@zeropercenthappy 身怀利器 杀心自起 阿弥陀佛
|
13
newbieRenew 2020-11-30 16:28:27 +08:00 via iPhone
你用 2 的话,下次增加 1 个“数量”你咋整?增加 100 个呢
|
14
liyer 2020-11-30 16:35:38 +08:00 1
{
"10" : ["apple", "peach","pear"] } |
15
FakNoCNName 2020-11-30 16:43:27 +08:00
不好,用第一种虽然看着冗余,但是写代码操作的时候友好(不单单是写起来简单,扩展也容易),所有的读写都可以抽象到一个或者一类方法。
并且 1. key 是固定的,逻辑判断容易 2. 读取 obj.key 就能得到值 ${value} 如果使用第二种,增删改查,每个 Key:Value 的 Key 都是不确定的,做任何操作基本要靠遍历,代码写起来复杂不说,通用性也差。 如果还是觉得不太理解,可以自己动手写一段简单的代码,动手实践下就懂了。 Talk is cheap, show me the code ! |
16
lisianthus 2020-11-30 17:27:18 +08:00
2 给前端也好处理,多写一条 Object.entries 就是了,不过确实语义不好理解
|
17
dxkkb24 2020-11-30 18:27:02 +08:00
我还见过调用的接口返回的 json 的 key 是中文的
|
19
raaaaaar 2020-11-30 18:50:33 +08:00 via Android
可读性,鬼知道 2 里那个数字是什么意思。
|