当前位置: 首页 > 面试题库 >

如何将JSON数组转换为Postgres中的行

蔡弘扬
2023-03-14
问题内容

我在我的postgres数据库中存储了一个json数组。json看起来像这样:

    [
        {
            "operation": "U",
            "taxCode": "1000",
            "description": "iva description",
            "tax": "12"
        },
        {
            "operation": "U",
            "taxCode": "1001",
            "description": "iva description",
            "tax": "12"
        },
        {
            "operation": "U",
            "taxCode": "1002",
            "description": "iva description",
            "tax": "12"
        }
    ]

现在,我需要选择数组,以便任何元素都位于查询结果的不同行中。因此,我执行的SELECT语句必须以这种方式返回数据:

 data
--------------------------------------------------------------------------------------
 { "operation": "U", "taxCode": "1000", "description": "iva description", "tax":"12"}
 { "operation": "U", "taxCode": "1001", "description": "iva description", "tax":"12"}
 { "operation": "U", "taxCode": "1002", "description": "iva description", "tax":"12"}

我尝试使用该unnest()功能

SELECT unnest(json_data::json)
FROM my_table

但它不接受jsonb类型


问题答案:

我将pozs最初写的答案发布在评论部分。

unnest() 适用于PostgreSQL的数组类型。

而是可以使用以下功能之一:

  • json_array_elements(json) (9.3+)
  • jsonb_array_elements(jsonb) (9.4+)
  • json[b]_array_elements_text(json[b]) (9.4+)

范例

select * from json_array_elements('[1,true, [2,false]]')

产值

 -------------
 | 1         |
 -------------
 | true      |
 -------------
 | [2,false] |
 -------------

在这里可以找到v9.4的文档。



 类似资料:
  • 我对postgresql(9.4)和javascript有一些问题。我试图将jsonb[]数据类型转换为javascript中json值的数组/列表。为了简单起见,我的示例在数组中只包含一个元素(json)。 以下是我迄今为止尝试过的。 这是我要找的。 任何帮助将不胜感激。

  • 问题内容: 我的脚本向我返回了一个数组(JSON数组),如下所示: 我需要打印“ 键 / 对” 值,就像从“ 地图”中进行 打印一样,如下所示: 我收到的JSON格式是否可能与常规JSON格式不同? 我当前的代码基于 Selenium ,它使用 Java脚本 读取性能统计信息,如下所示: _JavaDoc中_的提到了以下情况: 如果脚本具有返回值(即,如果脚本包含return语句),则将执行以下步

  • 问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 向后兼容的脚本:https : //github.com/douglascrockford/JSON- js/blob/master/json2.js 并致电: 注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版

  • 问题内容: 我有一些字典想要转换为JSON。我的对象是类型,并且最终要得到这样的示例: 这是我正在尝试的方法,但是编译器不喜欢我的声明: 我怎样才能做到这一点? 问题答案: 一种简单的实现方法是扩展CollectionType。 使用可选的绑定和向下转换,然后序列化为数据,然后转换为字符串。 输出:

  • 问题内容: 更新: 现在可以在MySQL 8中通过JSON_TABLE函数:https ://dev.mysql.com/doc/refman/8.0/en/json-table- functions.html 我喜欢MySQL 5.7中的新JSON函数,但是遇到了一个试图将JSON中的值合并到普通表结构中的块。 掌握JSON,从中处理和提取数组等都很简单。始终使用JSON_EXTRACT。但是从