gpt4 book ai didi

ruby-on-rails - Rails jsonb - 当 jsonb 保存到 Postgresql 数据库时,防止 JSON 键重新排序

转载 作者:行者123 更新时间:2023-12-03 14:02:52 26 4
gpt4 key购买 nike

我有一个专栏amount_splits我需要按照我指定的键顺序保存我的 JSON。

如何防止 Rails/Postgres jsonb当我将它保存到数据库时自动排序我的 JSON 键? (用于创建或更新)

看起来它正在尝试按字母顺序排序,但做得很差。

这是我要保存的内容:

{
"str_fee": 3.17, # key 1
"eva_fee": 14.37, # key 2
"fran_royalty": 14.37, # key 3
"fran_amount": 67.09 # key 4
}

这是它实际保存的方式:
{
"eva_fee": 14.37, # key 2
"str_fee": 3.17, # key 1
"fran_amount": 67.09, # key 4
"fran_royalty": 14.37 # key 3
}

目的:

在您回答“在接收端使用 JSON 时排序无关紧要”之前,请先停下来想想……然后请继续阅读

我需要按照我需要的方式对键进行排序,因为 使用此 JSON 的客户端界面正在向需要按照文档告诉他们的顺序排列 key 的开发人员显示 JSON。它需要按该顺序排列的原因是显示计算发生的过程先哪个顺序:

正确的顺序告诉开发者:
str_fee首先应用,然后是 eva_fee ,然后是 fran_royalty ... 制作 fran_amount期末金额。

但基于如何jsonb对此进行排序,它错误地告诉我们的开发人员:
eva_fee首先应用,然后是 str_fee ,然后是 fran_amount ... 制作 fran_royalty期末金额。

最佳答案

实际上它们不是按字母顺序排序,而是按 key 长度然后按字母顺序排序,这解释了你得到的顺序。 jsonb类型已创建为 json 的更好版本键入以写入和访问数据,并且可能出于索引和搜索目的而更改键顺序。如果您希望您的 key 顺序不改变,您可以使用 json在数据库中存储数据时不改变键顺序的类型。

希望能帮助到你。

关于ruby-on-rails - Rails jsonb - 当 jsonb 保存到 Postgresql 数据库时,防止 JSON 键重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52123133/

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