JQ:数字字段名称

时间:2019-04-04 08:42:12

标签: json powershell jq

我在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作为这三个对象的值。

1 个答案:

答案 0 :(得分:0)

json路径中的数字需要标记为Oldschool,例如: .starbase_detailed_scan.resources [“ 2614028847”]

BR 蒂莫