首页 > 解决方案 > 如何防止json数据输出按字母顺序排序并存储在mysql工作中?

问题描述

您好我正在尝试在 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 数据按字母顺序排序?

谢谢。

标签: mysqljson

解决方案


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

解决方案是将列类型更改为“文本”,然后键的顺序不会更改!

在此处输入图像描述


推荐阅读