【发布时间】:2019-08-25 22:42:56
【问题描述】:
我在 Windows10 环境 (PowerShell) 中使用 JQ 1.5。
我构建了一个 jq 语句,该语句适用于 jqplay 上的示例数据,但在我的环境中引发错误:
示例:Code share
代码:
. | { last_update: .starbase_detailed_scan.last_update_time, user_name: .starbase_detailed_scan.owner_name, alliance_id: .starbase_detailed_scan.owner_alliance_id, drydocks: .starbase_detailed_scan.num_drydocks, tier: .starbase_detailed_scan.owner_level, defence_plattform: .starbase_detailed_scan.num_defence_platforms, shield_triggered: .starbase_detailed_scan.player_shield.triggered_on, shield_end: .starbase_detailed_scan.player_shield.expiry_time, parsteel: .resources."325683920".current_amount, tritanium: .resources."743985951".current_amount, dilithium: .resources."2614028847".current_amount, user_id: .starbase_detailed_scan.owner_user_id, defence_rating: .starbase_detailed_scan.defense_rating }
问题在于带有数字标识符的 JSON 对象。在 jqplay 我得到了正确的值。在 PowerShell jq 上出现错误。我预计这是一个 PowerShell 问题,所以我尝试将过滤器移动到过滤器文件中。然后错误消失了,但我只得到 NULL 作为三个对象的值。
【问题讨论】:
-
不要在 PowerShell 中使用
jq。 PowerShell 带有自己的 JSON 解析器,所以只需使用它。 -
您在那里添加的过滤器无论如何都无效。你到底在跑什么?
-
更新了过滤器。出现复制和粘贴错误
-
@TimoC 为什么会有人点击那个链接并复制那个巨大的 JSON,然后继续工作呢?你不能在你的问题中加入一个小而有代表性的例子吗?
标签: json powershell jq