JSON按路径取值/设值/删除

JSON 输入
输出

工具介绍

不需要记完整 JSONPath / jq 语法时,用点号路径最省事。本工具支持三种操作——取值、设值(右侧输出整份改写后的 JSON)、删除——适合改配置、抽字段、删敏感键。

设值时「设值内容」须为合法 JSON(字符串请加引号,如 "Beijing";数字、布尔、对象、数组按 JSON 写法填写)。

路径语法说明

路径用英文句点 . 分隔每一层键名;访问数组元素时,下标写成纯数字段(从 0 开始)。从根对象往下逐层定位,不需要写开头的 $,也不是 JSON Pointer 的 /a/b 写法。

  • 对象字段:直接写键名,如 useruser.profile.city
  • 数组下标:用数字段,如 tags.0(第一个元素)、items.2.id
  • 多层嵌套:按层级依次用点连接即可
  • 空白:路径两端空格会忽略;中间不要随意加空格

与常见语法的区别:

  • 不是 JSONPath:不支持 $..[?()]*
  • 不是 jq:不支持 .[]| 管道
  • 不是 JSON Pointer:不要写成 /user/name,应写成 user.name
  • 键名里若本身含有点号 .,当前语法无法区分「一层键」与「多层路径」,请避免对这类键使用本工具

路径示例

假设输入 JSON 为:

{
  "user": {
    "id": 9007199254740993,
    "profile": { "city": "Shanghai", "score": 9007199254740993.9900 },
    "tags": ["json", "tools"]
  },
  "items": [
    { "id": 1, "name": "a" },
    { "id": 2, "name": "b" }
  ]
}
  • user → 整个 user 对象
  • user.id9007199254740993
  • user.profile.city"Shanghai"
  • user.tags["json", "tools"]
  • user.tags.0"json"(数组第 1 个)
  • user.tags.1"tools"(数组第 2 个)
  • items.1.name"b"

三种操作怎么用

  • 取值:路径指向的值单独输出到右侧。例:路径 user.profile.city,输出 "Shanghai"
  • 设值:把「设值内容」写入该路径,右侧输出整份修改后的 JSON。路径中间不存在时会自动创建对象或数组。例:路径 user.profile.city,设值内容 "Beijing"
  • 删除:删掉该路径对应的键或数组元素,右侧输出整份结果。删除数组下标会用 splice,后面元素会前移。例:路径 user.tags.0 会删掉 "json"

工具特点

  • 点选式路径:点号分隔,数组用数字下标,上手快
  • 三种操作:取值 / 设值 / 删除一页完成
  • 设值可建中间节点:路径不存在时自动创建对象或数组
  • 大数友好:不破坏大整数与尾随零小数

适用场景

  • 从大 JSON 里抽出某一个字段
  • 改配置某一项、删调试字段
  • 给非 jq / 非 JSONPath 用户提供简单路径编辑