【问题标题】:json output convert to other formatjson输出转换为其他格式
【发布时间】:2018-06-20 04:40:59
【问题描述】:

我有以下脚本输出

{"emeter":{"get_realtime":{"current":0.501730,"voltage":240.819788,"power":70.455025,"total":1.798000,"err_code":0}}}

我需要把它转换成这个格式供 prometheus exporter 收集器使用:

current 0.53
voltage 234
power 84.04
total 0.92

建议?

【问题讨论】:

  • 为什么电压从输入的240.82变成了输出的234?
  • 电压发生了变化,因为读数是在不同的时间获取的,默认情况下它是 240.23423 但我需要它显示为 240

标签: json linux awk text-processing


【解决方案1】:
  1. 获取内部对象 - 在解析 JSON 后考虑 my_obj 是您的对象
  2. 使用Object.keys() 将对象的键作为字符串数组获取
  3. 使用filterArray 方法忽略“err_code”
  4. 我使用控制台日志来记录输出 - 不知道你想要什么,但我想你现在可以轻松搞定

var my_obj = {
  "emeter": {
    "get_realtime": {
      "current": 0.501730,
      "voltage": 240.819788,
      "power": 70.455025,
      "total": 1.798000,
      "err_code": 0
    }
  }
}
var inner = my_obj.emeter.get_realtime;
var innerKeys = Object.keys(inner);
innerKeys.filter(k => k !== "err_code")
  .forEach(k => console.log(k, inner[k]));

【讨论】:

  • sn-p 运行正常,但我不知道那是什么语言,我可以在 bash 中做这样的事情吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多