gpt4 book ai didi

php - 如何设置插入到 json 数据类型字段的键的顺序?

转载 作者:行者123 更新时间:2023-11-29 06:59:47 24 4
gpt4 key购买 nike

这就是我的数据库的样子:

This is my database

我要插入的代码如下:

$attribute = [
'type'=>'customer',
'keys'=>[
'year'=>(string)$event->customer->year,
'month'=>(string)$event->customer->month,
'codeprogram'=>(string)$event->customer->codeprogram,
'codeoutput'=>(string)$event->customer->codeoutput,
'codeaccount'=>(string)$event->customer->codeaccount
],
'summary'=>$event->customer->value,
];

Summary::create($attribute);

表摘要中有 4 个字段:id、类型、键、摘要

键的数据类型是json

执行时,插入字段键的数据如下:

{"codeprogram": "1", "codeoutput": "4", "codeaccount": "7", "year": "2017", "month": "1"}

有时像:

{"codeoutput": "4", "year": "2017", "codeprogram": "1", "month": "1", "codeaccount": "7"}

插入的数据看起来是随机的

我希望插入的数据按如下顺序字段键:

{"year": "2017", "month": "1", "codeprogram": "1", "codeoutput": "4", "codeaccount": "7"}

我该怎么做?

最佳答案

JSON 对象中键的顺序没有意义。因此,许多实现不会按确定的顺序序列化对象。

An object is an unordered set of name/value pairs. An object begins with { (left brace) and ends with } (right brace). Each name is followed by : (colon) and the name/value pairs are separated by , (comma). [emphasis added]

http://json.org

考虑以下伪代码,它将 JSON 字符串反序列化为数据结构,然后将该数据结构序列化回 JSON:

let a = '{ "x": "hello", "y": "world" }'

let b = to_json(from_json(a))

b 有两个可能的值:

'{ "x": "hello", "y": "world" }'
'{ "y": "world", "x": "hello" }'

两个结果都是有效的,并且两个结果是等效的。

<小时/>

请注意,将 JSON 字符串存储在数据库列中通常被视为反模式,除非永远不会根据 JSON 的内容查询数据库。任何给定列的内容都应该是原子值。仅当数据库查询不基于对象的属性/值对的内容时,这才适用于 JSON 对象。

关于php - 如何设置插入到 json 数据类型字段的键的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43961335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com