从 jsonb_to_recordset 派生的记录集是否始终保持 JSON 数组中项目的顺序

mrS*_*ear 6 postgresql

我希望能够检索 jsonb 对象数组作为记录集。保持对象的顺序是至关重要的。jsonb_to_recordset 会不会总是按照对象数组的顺序返回记录集?

mrS*_*ear 5

这是使用 Postgres 的另一个 json 函数的另一个解决方案:jsonb_array_elements

  SELECT id, (value->>'benefit')::varchar as benefit, ordinality as rank
  FROM products 
  CROSS JOIN LATERAL jsonb_array_elements(benefits) with ordinality
Run Code Online (Sandbox Code Playgroud)

“与序数”为您提供每个数组项的顺序,并允许您在该字段上执行显式 order by 以确保顺序保持不变。

这个stackoverflow帖子非常有帮助