是否编码json数据有什么区别

时间:2019-06-08 12:21:08

标签: json laravel

在我将其放入数据库之前,对此做json_encode的目的是什么(而不是它的用途)

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

成为这个

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

我认为没有必要这样做,因为我需要再次json_decode再将其送回...有人可以清除我吗?

1 个答案:

答案 0 :(得分:0)

请勿将json编码的数据存储在数据库中。您可以通过这种方式缓解关系数据库的整个问题,并使搜索值成为一项昂贵的任务。我在您的示例中看到了清洁度,publicFacility,roomFacility和安全性的属性。这些应该是数据库中的列,以便您可以搜索“清洁度高于3的所有条目”之类的内容。 它适用于JSON列类型,但比使用普通列更昂贵。

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

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