如何使用jq转换字符串值并将其转换为数字

时间:2020-03-07 21:46:00

标签: json numbers jq data-extraction

只是试图弄清楚这个简单的JSON片段

[{ "rooms": "2 Rooms" }, { "rooms": "3 Rooms" }]

转化为

[{ "rooms": 2 }, { "rooms": 3 }]

我在文档中找到了支持regexp的函数的引用,但是我不能只写这样的内容

[.[] | { "rooms": .rooms } ]

1 个答案:

答案 0 :(得分:1)

这是一种可以轻松适应不同需求的方法:

def extractNumber: gsub("[^0-9]";"") | tonumber;

map( map_values(extractNumber) )

概括

def extractNumber:
  . as $in 
  | gsub("[^0-9]";"")
  | if length == 0 then $in else tonumber end;

walk(if type == "object" then map_values(extractNumber) else . end)