User Rating 0.0
Total Usage 0 times
Drag & Drop ADIF file here or click to browse
OR PASTE TEXT

JSON Preview

Records: 0 Size: 0 KB
// JSON output will appear here...
Is this tool helpful?

Your feedback helps us improve.

About

This tool converts ADIF (Amateur Data Interchange Format) files into MongoDB-ready JSON. It is designed for Ham Radio operators and developers who need to migrate logbook data (QSOs) into modern NoSQL databases. Unlike simple Regex converters, this tool uses a byte-precise parser to respect the Length specifier of every field, ensuring data integrity even if your logs contain special characters.

It automatically detects standard ADIF fields like QSO_DATE and TIME_ON, merging them into a single ISO-8601 formatted Date object compatible with MongoDB's date queries.

adif ham radio mongodb json converter logbook

Formulas

The ADIF format relies on a Tag-Length-Value structure. The parser reads the stream using the following logic:

<TAG_NAME:LENGTH>DATA

Where LENGTH is the exact number of bytes to read for the DATA payload. The record ends with an End-of-Record marker:

LOOP until <EOR>

For MongoDB compatibility, dates are transformed:

ISO_Date = parseQSO_DATE + "T" + TIME_ON + "Z"

Reference Data

Field (ADIF)TypeJSON MappingDescription
CALLStringcallThe callsign of the contacted station.
BANDStringbandFrequency band (e.g., 20M, 70CM).
FREQNumberfreqFrequency in MHz. Converted to Float.
QSO_DATEDatetsCombined with Time to create ISO timestamp.
MODEStringmodeTransmission mode (CW, SSB, FT8).
RST_SENTStringrst_sentSignal report sent.

Frequently Asked Questions

Yes. The parser respects the character length defined in the ADIF tag header, so newlines inside comments or address fields are preserved correctly.
By default, the tool combines QSO_DATE and TIME_ON into a standard ISO 8601 string (YYYY-MM-DDTHH:mm:ssZ). This allows MongoDB to automatically interpret them as Date objects upon import.
No. All parsing happens locally in your browser using JavaScript. Your ADIF files never leave your device.
The header (data before ) is extracted and placed in a separate "_header" object at the beginning of the JSON array if the option is selected, otherwise it is discarded to keep the array flat.