json - 通过 jq 从字符串中解析浮点值

标签 json floating-point type-conversion jq

我有一个特定的 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"
}

问题是我的原始数据是一个字符串值,我不知道如何解析它以进行条件选择。

最佳答案

只需与 jq 的 tonumber功能:

jq '.[] | select((.a|tonumber) > 50 and (.b|tonumber) > 50)' mydata.json

输出:
{
  "a": "70.0",
  "b": "92.67",
  "c": "0",
  "d": "0"
}

关于json - 通过 jq 从字符串中解析浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077471/

相关文章:

javascript - 使用 Handlebars 模板编译 JSON 内容的函数无法正常工作(语法错误?)

django - 如何在 django JSON 中将用户 ID 替换为用户名?

pandas 将带有数字和 nans 的对象转换为整数或 float

arrays - MongoDB 将字符串转换为数组

C# 无法从 'out string' 转换为 'out dynamic'

javascript - 我如何 JSON.parse 带有 HTML 标签的字符串?

javascript - 如何将 JSON 字符串对象值转换为整数?

c++ - 在 Linux 和 Windows 上计算相同 --> 不同的结果

浮点减法恒等式

c - 为什么 float 变成 NaN