JFD

JSON FormData Converter

Convert nested JSON to FormData fields

JSON & Data
πŸ”’ 100% client-side β€” your data never leaves this page
Maintained by Evanβ€’Updated: September 29, 2026β€’Reviewed: September 28, 2026

Agree on the backend structure

FormData is an ordered list of names and values, with no standard JSON nesting syntax. Object arrays always use indices such as items[0][id] to keep each object’s fields together. tags[] or repeated tags apply only to scalar arrays. Your backend must still support the chosen convention.

Root arrays and scalars use value as the base name. Empty strings remain; empty objects and arrays emit no fields. Represent IDs beyond the safe integer range as JSON strings. Limits: 1,000,000 input characters, 40 nesting levels and 10,000 output fields. The tool does not read local files.

Page reading mode

The full guide also includes pitfalls, worked examples, snippets, FAQs, and related tools for checking results or troubleshooting.

About this tool

Inspect the text fields a JSON payload will produce before sending a form request. Object arrays retain indexed paths such as items[0][id]; scalar arrays can use brackets, indices, or repeated names. Numbers and booleans become strings, while null behavior is explicit. The tool shows ordered field entries, FormData JavaScript, cURL --form-string flags and a URL-encoded preview. Values beginning with @ or < stay literal text in cURL, rather than becoming file input. Conversion is local; nesting conventions must match your backend.

Frequently Asked Questions

Does FormData have a standard JSON nesting format?

No. FormData contains an ordered list of names and values. Bracket notation is a backend convention. Object and nested-array elements always keep indices here; bracket or repeat modes apply to scalar arrays.

Are booleans, numbers and null preserved as JSON types?

No. Form fields are strings. Booleans become true/false or 1/0 text. Null can be omitted, become an empty string, or become the string "null". Empty strings remain; empty arrays and objects emit no field.

Why use --form-string instead of -F?

-F interprets values starting with @ or < as file-related input and also recognizes form syntax such as type=. --form-string preserves the complete value as literal text. The preview quotes arguments for POSIX shells, not PowerShell.

Why can cURL output be unavailable for some field names?

Names containing equals, newline or NUL, and values containing NUL, cannot be represented reliably by this command-line preview. The field list and FormData JavaScript remain available.

Should I set Content-Type when sending FormData with fetch?

Let the browser set multipart/form-data and its boundary. The separate URL-encoded preview uses application/x-www-form-urlencoded and is not the same wire format.

Why does a large numeric ID cause an error?

JSON numbers outside the safe integer range can lose precision when parsed. Put such identifiers in JSON strings before converting. Limits are one million input characters, forty nesting levels and ten thousand output fields.

Keep browsing