# Data Tools

Structured data is information in the text and binary formats that software uses to store and exchange records: JSON, CSV, XML, YAML, TOML and INI, plus map formats such as GeoJSON. Typical tasks are formatting and validating files, converting between formats, filtering records, drawing charts from tables and generating test data.

## Subcategories

- [JSON](https://techolm.com/data-tools/json) (0 tools)
- [CSV & Tables](https://techolm.com/data-tools/csv-tables) (0 tools)
- [XML](https://techolm.com/data-tools/xml) (0 tools)
- [YAML, TOML & INI](https://techolm.com/data-tools/yaml-toml-ini) (0 tools)
- [Maps & Geo Data](https://techolm.com/data-tools/maps-geo-data) (0 tools)
- [Binary Data Formats](https://techolm.com/data-tools/binary-data-formats) (0 tools)
- [Charts & Visualization](https://techolm.com/data-tools/charts-visualization) (0 tools)
- [Mock Data](https://techolm.com/data-tools/mock-data) (0 tools)

## Tools

- JSON Formatter (Coming soon): Format, indent and validate JSON so it is easy to read, with errors shown by line and column.
- JSON to CSV (Coming soon): Convert a JSON array of objects into a CSV table, flattening nested fields into columns.
- CSV to JSON (Coming soon): Convert CSV or TSV rows into a JSON array of objects, using the header row for property names.
- YAML to JSON (Coming soon): Convert YAML documents into JSON and see exactly how each value is parsed.

## Frequently asked questions

### What is the difference between JSON and CSV?

CSV stores a flat table: one record per line, with values separated by commas. JSON stores nested data with objects, arrays, numbers, true, false and null, so it can describe structures a table cannot. Converting nested JSON to CSV flattens it, usually by joining key names into column headers such as `address.city`.

### Why does my JSON fail to parse?

The usual causes are a trailing comma after the last item, single quotes instead of double quotes, comments, or keys without quotes. Standard JSON, defined in RFC 8259, allows none of these, although relaxed formats such as JSON5 accept them. The error position points to where the parser stopped, which can be just after the real mistake.
