我想将 json 中的一个字段从数字更改为字符串格式。
我从动态创建的文本文件创建 json 输出,如下所示:
LastUpdate=2019-12-01T13:26:46.388817319+01:00
State=NOT OK
TempA=26.299999
TempB=-0.100000
PumpState=0
Vault=100.000000
Mode=H+WW
ErrState=0
然后我使用jo
将此输出转换为 json
cat /tmp/file | jo -p
{
"LastUpdate": "2019-12-01T13:26:46.388817319+01:00",
"State": "NOT OK",
"TempA": 26.299999,
"TempB": -0.1,
"PumpState": 0,
"Vault": 100,
"Mode": "H+WW",
"ErrState": 0
}
问题是,我需要该值ErrState
采用字符串格式。
看起来jo
无法通过管道输入做到这一点。所以我想也许可以用sed
或来实现jq
?或者任何其他工具?
问题可能是,ErrState 的输出可以更改为文本,然后我在简单的搜索和替换中会有两次引号。
记住我想保留完整的输出 - 仅将 ErrState 更改为字符串。
答案1
您jq
可以使用:
.ErrState = (.ErrState | tostring)