我有一个特殊的JSON数据,其中包含我需要有条件地处理JSON数组的浮点值。这是一个JSON实例的示例:
[
{
"a": "0",
"b": "66.67",
"c": "0",
"d": "0"
},
{
"a": "12.33",
"b": "0",
"c": "60.2",
"d": "19.3"
},
{
"a": "70.0",
"b": "92.67",
"c": "0",
"d": "0"
}
]
我希望有条件地选择
cat mydata.json | jq '.[] | select((.a > 50) and (.b > 50))'
它应该听起来像
{
"a": "70.0",
"b": "92.67",
"c": "0",
"d": "0"
}
问题是我的原始数据是一个字符串值,我不知道如何解析条件选择。
答案 0 :(得分:3)
只需使用 jq 的tonumber
功能:
jq '.[] | select((.a|tonumber) > 50 and (.b|tonumber) > 50)' mydata.json
输出:
{
"a": "70.0",
"b": "92.67",
"c": "0",
"d": "0"
}