我在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作为这三个对象的值。
答案 0 :(得分:0)
json路径中的数字需要标记为Oldschool,例如: .starbase_detailed_scan.resources [“ 2614028847”]
BR 蒂莫