Why are the numbers in one of my columns strings?
Because one cell in that column is not a plain number: a leading zero, a decimal comma, a currency sign or more than 15 digits. The whole column is then written as text, so a program reading the JSON finds one type in each field.
Which of the three shapes should I pick?
Objects, one {"Name": "Ada"} per row, is what most APIs and scripts expect. Arrays puts the column names in a first list and each row in a list after it, which is shorter for wide tables. JSON Lines writes one object a line, saved as .jsonl, for loaders that read a line at a time.
Can I convert an Excel file to JSON?
Yes: drop the .xlsx and its first sheet opens, with the others a pick away. Numbers come out as they were stored rather than as the cells displayed them, and dates as text such as 2024-05-12.
Why does the JSON say null where my file had nothing?
An empty cell has no value, and null is how JSON says so, which a program can tell apart from an empty string. Untick Typed values for "" instead; every other cell then becomes a string as well.