JSON/YAML Tools Skill
Validate, format, and convert between JSON, YAML, and TOML formats.
When to Use
✅ USE this skill when:
-
"Format this JSON"
-
"Validate this YAML file"
-
"Convert JSON to YAML"
-
"Parse this config file"
-
"Query JSON data"
When NOT to Use
❌ DON'T use this skill when:
-
Editing files directly → use text editor
-
Large data processing → use specialized tools
Commands
Validate
{baseDir}/validate.sh <file> {baseDir}/validate.sh config.json --format json {baseDir}/validate.sh config.yaml --format yaml
Format/Prettify
{baseDir}/format.sh config.json {baseDir}/format.sh config.yaml --indent 4 {baseDir}/format.sh config.json --compact
Convert
{baseDir}/convert.sh config.json --to yaml {baseDir}/convert.sh config.yaml --to json {baseDir}/convert.sh config.toml --to json {baseDir}/convert.sh config.json --to toml
Query
{baseDir}/query.sh data.json '.users[0].name' {baseDir}/query.sh data.json '.items | length' {baseDir}/query.sh data.yaml '.config.settings'
Flatten/Unflatten
{baseDir}/flatten.sh data.json {baseDir}/unflatten.sh data.json
Merge
{baseDir}/merge.sh file1.json file2.json --out merged.json {baseDir}/merge.sh base.yaml overlay.yaml
Output Formats
-
Formatted: Pretty-printed with indentation
-
Compact: Single line, no whitespace
-
Flat: Dot-notation keys
Examples
Format JSON file:
{baseDir}/format.sh config.json
Output: Properly indented JSON
Convert YAML to JSON:
{baseDir}/convert.sh config.yaml --to json
Query JSON with jq-like syntax:
{baseDir}/query.sh data.json '.users[].name' {baseDir}/query.sh data.json '.items | map(.price) | add'
Validate JSON:
{baseDir}/validate.sh config.json
Output: Valid ✓ or error details
Notes
-
Uses Python's json, yaml, and tomli libraries
-
Supports YAML 1.2 specification
-
Handles circular references in merge
-
Query syntax is similar to jq