首页 > 解决方案 > json数据是否被编码有什么区别

问题描述

json_encode在我放入数据库之前,这样做的目的是什么(而不是它变成了什么)

rating: {cleanliness: 3, publicFacility: 1, roomFacility: 2, security: 2}

成为这个

rating: "{"cleanliness":3,"publicFacility":1,"roomFacility":2,"security":2}"

json_decode我认为这样做没有任何意义,因为在将其送回之前我需要再次这样做......有人可以清除我吗?

标签: jsonlaravel

解决方案


不要将 json 编码的数据存储在数据库中。您以这种方式减轻了关系数据库的全部意义,并使搜索值成为一项昂贵的任务。我在您的示例中看到属性清洁度、公共设施、房间设施和安全性。这些应该是数据库中的列,因此您可以搜索“所有清洁度高于 3 的条目”之类的内容。它适用于 JSON 列类型,但比使用普通列更昂贵。

编辑:检查数据库条目的用例。如果您确定您永远不需要搜索或按编码属性排序,您可以存储编码为 json 字符串的数据。但是,如果您的数据库支持 JSON 列类型,则应该使用该类型,因为它允许在存储的 JSON 中进行搜索(但比在普通列中搜索更昂贵)。</编辑>

第二点:第二个代码被剪断(带引号)看起来像 json 的无效语法。


推荐阅读