【问题标题】:How can I Insert and retrieve a JSON format object into MySQL如何在 MySQL 中插入和检索 JSON 格式对象
【发布时间】:2018-07-03 23:20:20
【问题描述】:

这就是问题所在。我希望将具有嵌套数组的对象存储到我的数据库中的 SQL 列中。我的目标是存储整个对象并在必要时检索它。无需访问 JSON 对象中的单个项目。

现在我正在做的是对数组进行字符串化以将其发送到数据库中,将其存储为字符串,然后在检索信息时使用JSON_decode($string, true) 对其进行解码,但 JSON_decode 在数组中给了我一个大字符串我不能用它做任何事情

这就是我的数组的样子

var profileData = {
profileIndex:[0],
myProfile:
    [
        [[[ 'First Name:','']],[['Last Name:','']],[[ 'Title:','']],[['Company','']],[['Cell:',''] .... 
    ]

(它继续使用更多的值,但你明白了)

这是从服务器解码字符串后返回的内容

["[[[\"First Name\",\"Random name\"]],[[\"Last Name\",\"Some Value\"]],[[\"Job Title\",\"Random job title\"]],[[\"Company\",\"Random company\"]] ... "]

有没有办法直接将它作为 JSON 对象存储到 MySQL 中?或者我应该怎么做才能完成我想做的事情

提前致谢

【问题讨论】:

  • JSON 是 文本。如何在 MySQL 中存储 text?如何将 JSON text 转换为对象图(反之亦然)?看起来有一个太多的编码或没有足够的解码..
  • 你运行的是什么版本的 MySQL?最近的版本具有 JSON 特定的数据类型
  • MySQL 8 也有一个 *native" JSON 类型:dev.mysql.com/doc/refman/8.0/en/json.html 与 varchar 类型相比,这可能值得探索。
  • @RiggsFolly 我尝试使用 JSON 类型,但它没有将其视为有效数据类型。我通过使用 JSON.parse() 解决了这个问题,它给了我我想要的东西。感谢您的回复。
  • @Farynx JSON 从 mysql 5.7 开始,但是你需要一个最新的 PDO 驱动程序(它是数据类型 245 上的一个)。

标签: php mysql json object


【解决方案1】:

确保您的 MySQL varchar 字段足够大以存储您最大的预期结果。

// encode your JSON as a string
$asJSON = json_encode($myJSON) ;

然后将$asJSON 存储到表中的 varchar 字段中。

【讨论】:

    【解决方案2】:

    通过解析给定的数组解决了这个问题。刚刚使用 JSON.parse($myvalue) 它给了我期望的 JSON 对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 2020-12-11
      • 2019-03-17
      • 2020-06-07
      • 1970-01-01
      • 2017-04-17
      • 2020-11-19
      相关资源
      最近更新 更多