OpenParable
Skip to content
← Back to skills

JSON Tools

Documents
json-tools

JSON Tools is an Agent Skill for documents published in the microclaw/microclaw repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Query, filter, transform, and validate JSON using jq (or Python as a fallback). Use when users want to extract fields from a JSON blob/file/API response, reshape JSON, pretty-print, or check that JSON is valid. Triggers on mentions of json, jq, extract field, parse json, pretty print json, validate json, reshape, 解析 json, 提取字段, 格式化 json.

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/microclaw/microclaw/blob/HEAD/skills/built-in/json-tools/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/json-tools, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

JSON Tools

Prefer jq for querying JSON; fall back to Python's json if jq isn't installed (command -v jq to check).

Pretty-print / validate

jq . data.json                 # pretty-print (errors if invalid)
python3 -m json.tool data.json # stdlib fallback

Extract a field / path

jq -r '.user.name' data.json
jq -r '.items[].id' data.json          # one id per line
jq -r '.items[] | select(.active)' data.json

Reshape into a new object / CSV

jq '{id: .id, who: .user.name}' data.json
jq -r '.rows[] | [.id, .name] | @csv' data.json

Python fallback for the same tasks

python3 - <<'PY'
import json
d = json.load(open('data.json'))
print([it['id'] for it in d['items'] if it.get('active')])
PY

Guidance

  • jq -r strips quotes for raw string output; drop -r to keep valid JSON.
  • For huge files, filter early (jq '.items[] | select(...)') instead of loading all into memory in Python.
  • When piping an API response, validate first — a truncated/HTML error page is not JSON.
  • Show the extracted result, not the entire input.