编码的json被PostgresQL损坏/转义?

nai*_*iny 5 php postgresql json yii2

我正在使用一个挂钩到PostgresQL数据库的Yii2模型.我有一个行为,可以将此模型的某些属性编码和解码到json.为了编码/解码,我正在使用Json助手,Json::encodeJson::decode方法.

表中的列是json类型.最终在数据库中的一个例子:

"{\"additional_tags\":[\"#???????\",\"#????\"],\"vk\":\"vk.com\\\/privetik\"}"
Run Code Online (Sandbox Code Playgroud)

当我尝试将其解码回php阵列时,这里返回的是:

'{"additional_tags":["#???????","#????"],"vk":"vk.com\/privetik"}'
Run Code Online (Sandbox Code Playgroud)

编辑:想到它,字符串似乎很好,但行为 ::decode方法很奇怪.本质上,它所做的就是删除转义斜杠,而不是将其转换为php数组或抛出异常.

我该怎么做才能解决这个问题?感谢任何反馈.

Beo*_*tor 1

看起来数据库中的字符串被编码了两次。Json::decode尝试再次传递它,我打赌它会返回你的数组。