我使用的是连接到PostgresQL数据库的Yii2模型。我有一个行为,编码和解码这个模型的某些属性到/从json。为了编码/解码,我使用Json助手,Json::encode
和Json::decode
方法。
表中的列是json类型。最后进入数据库的示例:
"{'"additional_tags'":['"#здрасте'",'"#кафе'"],'"vk'":'"vk.com'''/privetik'"}"
当我尝试将其解码回php数组时,返回的结果如下:
'{"additional_tags":["#здрасте","#кафе"],"vk":"vk.com'/privetik"}'
编辑:仔细想想,字符串似乎很好,但::decode
方法的行为是奇怪的。从本质上讲,它所做的只是删除转义斜杠,而不是将其转换为php数组或抛出异常。
我该怎么做来解决这个问题?感谢您的反馈。
看起来数据库中的字符串被编码了两次。再试一次通过Json::decode
传递它,我打赌它会返回你的数组。