【问题标题】:how to prevent the json data output being alphabetically sorted and stored in mysql work?如何防止json数据输出按字母顺序排序并存储在mysql工作中?
【发布时间】:2020-05-26 01:29:05
【问题描述】:

您好,我正在尝试在 mysql 工作台中插入复杂的 json 数据,但我的 json 数据按字母顺序插入。如何以与插入查询中传递的相同顺序获取 json 数据?

创建表:

CREATE TABLE payload ( `id` INT NOT NULL,
      `json` JSON NOT NULL,
      PRIMARY KEY (`id`));

插入 Json

INSERT INTO payload ( id, json)
VALUES  (2, '{
    "request": "release",
    "type": [
        {
            "type" : 1
        }
    ],
    "start": [
        {
            "type": "sample",
            "id": "01",
            "content": [
                {
                    "name": "jon",
                    "email": "jon@gmail.com"
                }
            ]
        }
    ]
}');

选择*表名后将json存入数据库:

'3', '{\"type\": [{\"type\": 1}], \"start\": [{\"id\": \"01\", \"type\": \"sample\", \"content\": [{\"name\": \"jon\", \"email\": \"jon@gmail.com\"}]}], \"request\": \"release\"}'

实际上,我希望将我的 json 存储在与我在数据库中插入的 json 相同的位置。

有没有办法防止json数据按字母顺序排序?

谢谢。

【问题讨论】:

  • 为什么属性的顺序很重要?
  • 是的。我将读取该 json 作为输入
  • @nancy 属性的顺序在 json 数据类型中应该无关紧要。如果要保留订单,请将其存储为字符串。检索它并将其转换为 json。但是您将无法利用将其设为 json 数据类型的优势。

标签: mysql json


【解决方案1】:

Mysql 会在 JSON 对象存储之前自动对其进行排序。 我遇到了同样的问题!

解决方法是将列类型改为'text',然后key的顺序就不会改变了!

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    相关资源
    最近更新 更多