doc1:
{
"a": {}
}
查询出来之后添油加醋保存为另外一个 doc, 就变成了
doc2:
{
"a": []
}
请问有大佬解答一下如何处理吗...
1
rust 2022-04-28 10:44:31 +08:00
请把你"添油加醋"的代码发出来
|
4
HardStone OP 就是 {} 查询出来是 [], 然后保存的时候要如何保存为原来的 {}, 搜了一些都是答非所问
|
5
HardStone OP |
6
lambdaq 2022-04-28 10:51:39 +08:00 3
看到标题,心里想,这怕不是用了 php
点进来一看,果然,分区是 php |
7
chendy 2022-04-28 10:52:15 +08:00
1. 看下 mongo 的库有没有相关配置,不把空对象读取成空数组的(类似 json_decode(json, true)
2. 保存之前自己做判断,如果是空数组,转换成 (object) 存回去 |
9
HardStone OP @chendy #7 我也想到了, 但是想想, 也许可以避免存空数组 /空对象这种容易产生歧义的, 直接存 null 就不会有这个问题 /这么多额外步骤
|
10
fuchish112 2022-04-28 13:47:28 +08:00
暂时想到的是 new \stdClass()解决
|
11
fkdtz 2022-04-28 14:56:26 +08:00 1
这让我想起那天一个帖子,吐槽 json 格式复杂,一会用 [] ,一会用 {} ,还是 PHP 简洁,全都是 [] ... 逃
|
12
sujin190 2022-04-28 15:53:51 +08:00
似乎只能 new \stdClass()了,毕竟 php 想要强行区分空数组还是空字典似乎只能这样,其实吧你要是只是 php 读写似乎这样存问题也不大,就怕你还有换个语言读写的需求那真是坑人
|
13
abigeater 2022-04-28 17:51:14 +08:00
踩过这个坑,我的选择是这个字段干脆就不传了。。。 既然没数据存起来也没啥用。
|
15
limingxinleo 2022-04-30 14:46:21 +08:00
var_dump
json_decode(json_encode(new stdClass), true) 你就知道为什么了 |