У меня есть столбец 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, отображает JSON для разработчиков, которым необходимо, чтобы ключи были в порядке, указанном в документации их в. И причина, по которой он должен быть в таком порядке, состоит в том, чтобы отобразить процесс вычислений, в каком порядке сначала:
Правильный порядок говорит разработчику:
Сначала был применен str_fee
, затем eva_fee
, затем fran_royalty
..., делающий fran_amount
конечной суммой.
Но, исходя из того, как jsonb
сортирует это, он неверно говорит нашим разработчикам, что:
Сначала был применен eva_fee
, затем str_fee
, затем fran_amount
..., делающий fran_royalty
конечной суммой.