编码json会被PostgresQL破坏/转义


Encoded json gets corrupted/escaped by PostgresQL?

我使用的是连接到PostgresQL数据库的Yii2模型。我有一个行为,编码和解码这个模型的某些属性到/从json。为了编码/解码,我使用Json助手,Json::encodeJson::decode方法。

表中的列是json类型。最后进入数据库的示例:

"{'"additional_tags'":['"#здрасте'",'"#кафе'"],'"vk'":'"vk.com'''/privetik'"}"

当我尝试将其解码回php数组时,返回的结果如下:

'{"additional_tags":["#здрасте","#кафе"],"vk":"vk.com'/privetik"}'

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

我该怎么做来解决这个问题?感谢您的反馈。

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