json - 仅保留具有字符串值的字段

标签 json string jq key-value

我有一个像这样的 JSON 结构:

{
  "1": "a-secret",
  "A": "b-secret",
  "2": {
    "3": "ab-secret",
    "4": {
      "5": "adc-secret"
    },
    "6": {
      "7": "abdc-secret"
    }
  }
}

我正在尝试创建一个命令(最好是一个衬里)来返回只有字符串值的 key 对。所以对于上面它会返回:

{
  "1": "a-secret",
  "A": "b-secret"
}

我发现 .[]|strings 只返回字符串值,但我需要键和值,这让我很困惑!

最佳答案

您正在寻找map_values .

$ jq 'map_values(strings)' file
{
  "1": "a-secret",
  "A": "b-secret"
}

关于json - 仅保留具有字符串值的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65201631/

相关文章:

c# - 如何跳过 Json.Net 中 IEnumerable 类型的默认 JavaScript 数组序列化?

javascript - 如何阻止 Firebug 在控制台中 chop 字符串?

string - Excel VBA 指令 if 语句 false

json - jq json对象连接到bash字符串数组

json - 使用 jq 从嵌套 JSON 对象中提取匹配的子 json

mysql - 我什么时候应该将 JSON 存储在数据库中?

java - 转换包含嵌套 JSONString 的 JSONObject 时出现 JsonMappingException

javascript - jquery 追加在 IE 中不起作用在 FF 中工作正常

jq - 如何打印键(不是键的值)并迭代键以打印子值

json - Go json unmarshal 不获取单个属性值