gpt4 book ai didi

json - row_to_json 给出带有小写字段名称的 JSON

转载 作者:行者123 更新时间:2023-11-29 12:52:53 24 4
gpt4 key购买 nike

我创建了一个自定义类型如下:

create type my_type as (camelCasedIdentifier uuid, ...);

我正在使用此自定义类型 my_type 来定义 JSON 正文中的字段名称:

select row_to_json(row(my_table.id, ...)::my_type) from my_table;

我认为使用自定义类型有用的原因是这样,我不必在每个查询中定义 JSON 字段名称(在我的情况下它们与表列名称不同),就像您需要的那样与 json_build_object() 相关。

但是这里的问题是字段名称现在都是小写的:

{"camelcasedidentifier":"d8f0a177-af13-4fa2-a2af-3bc8296d848e", ...}

我预计:

{"camelCasedIdentifier":"d8f0a177-af13-4fa2-a2af-3bc8296d848e", ...}

我该如何解决这个问题?我知道这可以通过使用 select json_build_object('camelCasedIdentifier', my_table.id) from my_table 来解决,但我宁愿不这样做,因为我将被迫在每个查询。

最佳答案

在 SQL 中 identifiers不区分大小写,因此您的类型实际上是使用名为 camelcasedidentifier 的字段创建的。

如果你真的需要它,你必须使用带引号的标识符:

create type my_type as ("camelCasedIdentifier" uuid, ...);

如果您只使用该类型进行 JSON 转换,这是可以接受的,但是从长远来看,到处使用那些可怕的带引号的标识符会给您带来更多问题,而不是值得的。

关于json - row_to_json 给出带有小写字段名称的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49994932/

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