JQ 不处理部分数据

问题描述 投票:0回答:1

我可以通过提供源数据的链接来简化问题:

curl -sX GET "https://platform-explorer.pshenmic.dev/dataContract/GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec/documents?page=23&limit=4" | jq -r .resultSet

在代码的最后,您可以更改“limit”的值,该值将决定输出多少个块。总共有1000多个块,我需要提取每个块的“标签”和“时间戳”信息。 ` 里面有相同的块,其中包含“数据”键的原始数据。

{
  "identifier": "BVC9GYvsAwswBTfv4C2eziRZmZ6fUzrmMuvqv1VPdWG3",
  "dataContractIdentifier": "GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec",
  "revision": 1,
  "txHash": "03CFE8DAB06ECCCDB1430F149041775263F85DF335046C0421449AA73A46B4DA",
  "deleted": false,
  "data": "{\"label\":\"BFWookie\",\"records\":{\"identity\":\"Ea8acQwhQbbdaTLytoTiedEkTA89A8dyFpn9jTivr4Ht\"},\"preorderSalt\":\"hwebwVCxW+MwBmIqhoYIibGd7s7GOihv+MU6ae8Jj70=\",\"subdomainRules\":{\"allowSubdomains\":false},\"normalizedLabel\":\"bfw00k1e\",\"parentDomainName\":\"dash\",\"normalizedParentDomainName\":\"dash\"}",
  "timestamp": "2024-10-23T05:40:07.923Z",
  "isSystem": false,
  "owner": "Ea8acQwhQbbdaTLytoTiedEkTA89A8dyFpn9jTivr4Ht"
}

我需要将“data”键中的数据转换为正确的格式:


{
"label": "BFWookie",
"records": {
"identity": "Ea8acQwhQbbdaTLytoTiedEkTA89A8dyFpn9jTivr4Ht"
},
"preorderSalt": "hwebwVCxW+MwBmIqhoYIibGd7s7GOihv+MU6ae8Jj70=",
"subdomainRules": {
"allowSubdomains": false
},
"normalizedLabel": "bfw00k1e",
"parentDomainName": "dash",
"normalizedParentDomainName": "dash"
}

我通过使用以下命令处理“data”键中的数据获得了最后一个:

echo  "{\"label\":\"BFWookie\",\"records\":{\"identity\":\"Ea8acQwhQbbdaTLytoTiedEkTA89A8dyFpn9jTivr4Ht\"},\"preorderSalt\":\"hwebwVCxW+MwBmIqhoYIibGd7s7GOihv+MU6ae8Jj70=\",\"subdomainRules\":{\"allowSubdomains\":false},\"normalizedLabel\":\"bfw00k1e\",\"parentDomainName\":\"dash\",\"normalizedParentDomainName\":\"dash\"}" | jq

但是如何在第一个数据处理阶段快速完成这一任务呢? 或者其他选择?

bash parsing jq
1个回答
0
投票

您可以在检索数据时直接从数据密钥中提取、解码和格式化所需字段。这最大限度地减少了后处理。

curl -sX GET "https://platform-explorer.pshenmic.dev/dataContract/GWRSAVFMjXx8HpQFaNJMqBV7MBgMK4br5UESsB4S31Ec/documents?page=23&limit=4" | \
jq -r '.resultSet[] | .data | fromjson | .'
© www.soinside.com 2019 - 2024. All rights reserved.