如何用JSON中的字符串表示形式替换数字值?

时间:2019-08-25 18:39:15

标签: json jq

我有一个JSON文件,其中包含多个数字型uid字段,但我需要将其转换为字符串。这些uid字段嵌套在文件中的不同位置。

e.g.   "uid": 891602734537070110  => "uid": "891602734537070110"

我尝试了以下命令:

jq '(.. | .uid?) |= (tostring)'

有点奏效,但它为所有没有开头的字典增加了一个“ uid”字段(例如“ uid”:“ null”)。

正确的方法是什么?

1 个答案:

答案 0 :(得分:2)

正确的方法是walk

walk(
  if type == "object" and has("uid")
  then .uid |= tostring
  else . end
)