【问题标题】:Proper way to store json in database将json存储在数据库中的正确方法
【发布时间】:2015-10-05 21:02:54
【问题描述】:

json在存储在数据库字段中时是否通常带有引号?

对于json 列,以下哪项是正确的?

`json`
'{"Color": "Red"}'
 {"Color": "Red"}

我的假设是第二个,但只是想确保这是正确的。如果是这样,为什么?

【问题讨论】:

  • 我不认为有一些通用的“正确”答案。就个人而言,我也会选择第二个
  • 您是在询问撇号是否应该出现在数据中?如果是,则列值不是 JSON。通常在数据中不包含字符串分隔符,因为它会改变数据的含义。但是,如果您询问INSERT 语句的语法,答案就不同了。
  • json 只是文本。您可以像存储任何其他文本一样存储它:注意sql injection attacks

标签: mysql sql json


【解决方案1】:

As of MySQL 5.7.8, MySQL supports a native JSON data type

如果您使用早期版本并将其存储为文本,请在不带引号的情况下存储它。

【讨论】:

    【解决方案2】:

    虽然可以按照您的建议存储数据,但最好将数据存储在名为 json 且字段为 color 的表中,然后插入两条记录,每条记录都包含值“red”。

    现在要做的工作更多,因为它涉及解构和重建 JSON,但是如果您需要以 JSON 以外的某种格式提供数据,则可以节省以后的工作,那么您不需要重新格式化您的所有数据数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-27
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      相关资源
      最近更新 更多