繁体   English   中英

JQ 命令从字符串中提取名称到数组中

[英]JQ command to extract names into an array from a String

输入是一个文档。 我将在字符串中以数字开头

 {"doc": [
    {
      "cNo": "6222332 22450 32",
      "cNames": " 1 MANJSY JOAU 2 CHAFANH BINO",
      "cExpiry": "04/2025"
    },
    {
      "fields": 3,
      "documents": 1
    }
  ]}

预期的 output 有时是一个名称数组,如下所示

 {"doc": [
    {
      "cNo": "6222332 22450 32",
      "cNameArray": [
                       "MANJSY JOAU",
                       "CHAFANH BINO"
                    ],
      "cExpiry": "04/2025"
    },
    {
      "fields": 3,
      "documents": 1
    }
  ]}

据我了解,这个问题有两个主要部分:

  1. 将具有 integer 和非整数段的字符串转换为数组
  2. 将键名从 cNames 更改为 cNameArray

在目前的情况下,第一部分可以通过以下方式完成:

.doc[0] |= (.cNames |= [splits(" *[0-9] *")][1:])

第二个可以通过使用with_entries来完成,从而保留键的顺序:

.doc[0] |= (.cNames |= [splits(" *[0-9] *")][1:]
            | with_entries(if .key == "cNames" 
                           then .key = "cNameArray"
                           else . end) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM