SmartQueryTools

Cast Column Types in JSON Files Online

Change column data types in JSON files directly in your browser. Cast text to numbers, dates to timestamps, or any supported type conversion — no upload required.

How to cast Column Types in JSON files

  1. Drop your file. Every column is listed with its current type, and each one starts at Keep original.
  2. For each column you want to change, pick a target type: VARCHAR, INTEGER, BIGINT, FLOAT, DOUBLE, BOOLEAN, DATE or TIMESTAMP.
  3. Click Apply Casts. The button stays disabled until at least one column has a new type.
  4. Check the preview for new empty cells. A value that cannot be converted becomes NULL instead of stopping the run.
  5. Download the result in the same format. Column names and order stay the same.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A property portal's listing feed arrives with loose types. Prices include "POA" (price on application), bathrooms were written as decimals, and the garage flag is free text. An analyst needs clean numbers and a true/false column before building a price model.

Input (JSON)

[
  {
    "listing_id": "L-3301",
    "price": "485000",
    "bathrooms": 1,
    "has_garage": "yes"
  },
  {
    "listing_id": "L-3302",
    "price": "POA",
    "bathrooms": 2,
    "has_garage": "no"
  },
  {
    "listing_id": "L-3303",
    "price": "612500",
    "bathrooms": 1.5,
    "has_garage": "Y"
  },
  {
    "listing_id": "L-3304",
    "price": "349000",
    "bathrooms": 2.75,
    "has_garage": "n/a"
  }
]

Settings

  • listing_id: Keep original
  • price: INTEGER
  • bathrooms: INTEGER
  • has_garage: BOOLEAN

Result

listing_idpricebathroomshas_garage
L-33014850001true
L-3302NULL2false
L-33036125002true
L-33043490003NULL

"POA" is not a number, so that price becomes NULL. Casting a decimal to INTEGER rounds to the nearest whole number, so 1.5 becomes 2 and 2.75 becomes 3. That loses real information here, and DOUBLE would be the better choice for bathrooms. The BOOLEAN cast understands yes, no and Y, but "n/a" becomes NULL.

Working with JSON files

JSON already has numbers, booleans and strings, and each key gets its type from its values. Casting is most useful when an API sends numbers as strings, as in "price": "19.99". Casting that key to DOUBLE writes it back as a JSON number, 19.99, without quotes. A key whose values are of mixed kinds loads with the type JSON. Casting it to a number type converts both numbers and numeric strings, and gives null for the rest.

Watch one trap with that JSON type. Casting it to VARCHAR keeps the JSON quote marks, so the string PAY-2 becomes "PAY-2" with the quotes inside the value. Casting to DATE or TIMESTAMP does not create a date in the output, because JSON has none. The values are written as strings like "2026-09-14". A failed cast or a missing key shows up as null in every object of the output array.

Frequently Asked Questions

How do I turn string numbers like "19.99" into real JSON numbers?

Set the key to DOUBLE, or INTEGER for whole numbers, and apply. The downloaded JSON writes the values without quotes. Anything that is not a number becomes null.

Why do some cast JSON values have quote marks inside them?

The key had mixed value kinds and loaded as the JSON type. Casting JSON to VARCHAR keeps the original JSON text, including quotes around strings. Remove them afterwards with Find and Replace.

What happens to values that do not fit the new type?

They become NULL. Every changed column is converted with TRY_CAST, so one bad value never stops the run. It also fails silently. Compare null counts before and after, for example with the Validate structure tool, to see how many values were lost.

Does casting a decimal to INTEGER round or truncate?

It rounds to the nearest whole number, so 2.75 becomes 3 and 1.25 becomes 1. Exact halves may round to the even neighbour, so do not rely on how 2.5 is handled. Values above 2,147,483,647 become NULL. Use BIGINT for large IDs.

Which text values become true or false with BOOLEAN?

true, false, t, f, yes, no, y, n, 1 and 0, in any letter case. Anything else, such as "on", "open" or "n/a", becomes NULL.

Related Tools