SM Datum

GeoJSON to Shapefile Converter

Convert a GeoJSON file to a zipped shapefile with the .shp, .shx, .dbf, .prj and .cpg files. Mixed points, lines and polygons are split into separate shapefiles, long field names are shortened without losing any field, and polygon holes are kept. The file is read in your browser and never uploaded.

Drop a GeoJSON file here, or click to browse
Nothing is uploaded: the file is read in your browser.

No file handy? Download a sample GeoJSON with a point, a line and polygons (one with a hole).

    How to convert GeoJSON to a shapefile

    1. Load the file. Drop a .geojson or .json file onto the box above, or click it to browse. It can be a FeatureCollection, a single Feature or a bare geometry.
    2. Check the plan. The page counts the points, lines and polygons and lists the shapefiles it will write. A shapefile holds one geometry type, so mixed data is split into several.
    3. Choose the options. Set the file name and decide whether field names are limited to safe letters, digits and underscores.
    4. Download. Click Download shapefile (.zip). The zip holds the .shp, .shx, .dbf, .prj and .cpg files for each geometry type.

    What you get

    The download is a .zip. Inside it, each shapefile is a set of five files that share one name:

    FileWhat it holds
    .shpThe shapes.
    .shxThe index that GIS software uses to find each shape quickly.
    .dbfThe attribute table, with your GeoJSON properties as fields.
    .prjThe coordinate system: always WGS 84 longitude/latitude (EPSG:4326), because that is what GeoJSON uses.
    .cpgSays the text in the .dbf is UTF-8, so accented and non-Latin characters survive.

    Unzip them, or load the zip straight into QGIS or ArcGIS Pro.

    How GeoJSON geometry maps to shapefile types

    A shapefile can only hold one kind of geometry, but a GeoJSON file can mix them freely. When your data has more than one kind, the page writes one shapefile for each, named after your file with _points, _lines or _polygons added.

    In GeoJSONIn the shapefile
    PointPoint. If the file also has MultiPoint features, all of them go into one MultiPoint shapefile.
    MultiPointMultiPoint.
    LineString, MultiLineStringPolyLine (a record can have several parts).
    Polygon, MultiPolygonPolygon. Outer rings are written clockwise and holes counter-clockwise, as the shapefile format requires, so holes stay cut out.
    GeometryCollectionSplit into its parts. Each part becomes its own record and repeats the feature's attributes.
    A feature with null geometryLeft out and counted.

    Attributes: field names and types

    The .dbf table inside a shapefile has rules that GeoJSON does not. This is what the page does about them, and it tells you when it changes something.

    IssueWhat happens
    Field names are limited to 10 charactersLonger names are shortened. If two names end up the same, a number is added (name_2), so no field is lost. The page lists what was renamed.
    Characters in field namesBy default only letters, digits and underscores are kept, which every GIS program accepts. Untick the option to keep letters from other alphabets.
    NumbersA property that is a whole number in every feature becomes an integer field. Decimals become a decimal field with enough places to keep the values.
    true / falseA logical field.
    TextA text field wide enough for the longest value, up to the 254-byte limit of the format. Longer text is cut, and the page tells you how many values were.
    Nested objects and arraysWritten as JSON text in one text field.
    Missing valuesLeft empty. A property that is missing from a feature is empty for that row.
    No properties at allA shapefile needs at least one field, so an id column (1, 2, 3 ...) is added.

    Common problems and how to fix them

    I expected one shapefile and got three

    Your GeoJSON contains points, lines and polygons together. The shapefile format cannot mix them, so each type goes in its own shapefile. Load them as separate layers, or filter the GeoJSON to one kind first.

    The page says the coordinates are not longitude/latitude

    GeoJSON is defined in WGS 84 longitude and latitude (longitude from -180 to 180, latitude from -90 to 90). Large numbers such as UTM metres mean the file was exported in a projection. Reproject it to WGS 84 first with the CRS Converter or in QGIS.

    I need the shapefile in UTM or a national grid

    This page always writes WGS 84. Convert here, then reproject the shapefile with the CRS Converter.

    Some field names changed

    That is the 10-character limit. The summary above the download lists every rename. If you need the full names, keep the GeoJSON as the master copy, or use short names in the source.

    Old software shows strange characters

    The text is stored as UTF-8 and the .cpg file says so. Current QGIS, ArcGIS Pro and GDAL read it correctly. Very old programs ignore the .cpg file and may show accented letters wrongly.

    What this converter does and does not do

    • 2D only. Elevation (Z) values are not written to the shapefile. The page tells you when your data has them.
    • WGS 84 only. The numbers are used as they are. An old-style crs member that names another system produces a warning, but no reprojection is done.
    • One file at a time. A FeatureCollection is converted as a whole.
    • Runs in your browser. Nothing is uploaded and there is no signup, so the practical size limit is your computer's memory.

    GeoJSON or shapefile: what is the difference?

    GeoJSON is one JSON text file with long field names, mixed geometry types and WGS 84 coordinates. A shapefile is the format that desktop GIS software, many government portals and some mapping systems still expect: several files, one geometry type each, short field names. Convert to a shapefile when something asks for one. To go back, use Shapefile to GeoJSON.

    Frequently asked questions

    How do I convert GeoJSON to a shapefile?

    Drop the .geojson or .json file onto the converter, check the plan, then click Download shapefile (.zip). You get a zip with the .shp, .shx, .dbf, .prj and .cpg files.

    Is it free, and do I need an account?

    It is free and needs no account or signup. The file is read in your browser and never uploaded to a server.

    Why did I get more than one shapefile?

    A shapefile holds a single geometry type. If your GeoJSON mixes points, lines and polygons, the page writes one shapefile for each type, named with _points, _lines or _polygons.

    What happens to my property names?

    The shapefile format limits field names to 10 characters, so longer names are shortened. Duplicates get a number added, and the page lists what it renamed. By default only letters, digits and underscores are kept.

    Which coordinate system does the shapefile use?

    WGS 84 longitude/latitude (EPSG:4326). The .prj file says so. GeoJSON is always in that system, so no reprojection is needed. To get UTM or another system, reproject the shapefile afterwards with the CRS Converter.

    Does it keep holes in polygons?

    Yes. Holes stay holes. The page writes outer rings clockwise and holes counter-clockwise, which is what the shapefile format requires.

    What happens to MultiPolygon, MultiLineString and GeometryCollection?

    MultiPolygon and MultiLineString become one record with several parts. MultiPoint is written as a MultiPoint shapefile. A GeometryCollection is split into its parts, and each part becomes a record with the same attributes.

    How are numbers and text stored?

    A property that is a whole number in every feature becomes an integer field, decimals become a decimal field, true/false becomes a logical field, and everything else is text up to 254 bytes. Nested objects and arrays are written as JSON text.

    Are accents and non-Latin text kept?

    Yes. The text is stored as UTF-8 and a .cpg file says so. Current GIS software reads it correctly.

    Is elevation kept?

    No. The shapefile is written as 2D. If your GeoJSON has a third coordinate, the page tells you the Z values are not included.

    Why does it say the coordinates are not longitude/latitude?

    GeoJSON uses WGS 84 longitude and latitude. Values outside -180 to 180 for longitude or -90 to 90 for latitude mean the file is in a projection such as UTM or Web Mercator. Reproject it to WGS 84 first.

    Is there a file size limit?

    There is no fixed limit, but the work happens in your browser's memory. Very large files can be slow, especially on a phone. Shapefiles themselves are limited to about 2 GB.

    Can QGIS and ArcGIS open the result?

    Yes. The shapefiles were read back with GDAL and GeoPandas to check the geometry, the attributes and the coordinate system. You can add the .shp files, or the zip, straight to QGIS.

    How do I convert a shapefile back to GeoJSON?

    Use Shapefile to GeoJSON, which reads the .dbf attributes and reprojects with the .prj.

    Related tools and guides

    Need survey data cleaned, projected or mapped at scale? Sagarmekhla GIS Consultancy offers GIS and remote sensing services.

    Request a consultation

    Last updated 2026-10-15. Published by Sagarmekhla GIS Consultancy.