Two Emails in One Cell, or Two Strings in an Array
Published 9/9/2026 · 3 min read · File tools
Daniel Okonkwo — Front-end developer and tech writer at OneKitly
Web performance · File formats
Checked against 3 sources
vCard lets a contact repeat a property: two EMAIL lines, three TEL lines, as many as the person has. A spreadsheet cell holds one value, so the CSV export joins them — jp.dupont@example.fr · contact@example.fr, separated by a middle dot chosen because it almost never appears inside an address or a phone number. That is readable and sortable, and it is a string. The JSON export writes the same contact as an object where emails and phones are arrays: ["jp.dupont@example.fr", "contact@example.fr"]. If a person is going to read the file, the joined cell is friendlier; if a program is, the array removes the step where you decide what to split on and hope no contact ever put that character in a note. Everything else is the same, because both are the same parse of the same file.
A contact can have several phone numbers and several addresses. The CSV joins them with a middle dot into one cell; the JSON keeps them as a list, which is the difference between a script that works and one that splits on a guess.
Why the separator is a middle dot
A comma would be indistinguishable from the CSV's own separator, a semicolon from the one Excel uses across continental Europe, and a slash appears in real addresses. The middle dot appears in almost nothing anyone puts in a contact card, which makes a joined cell splittable in practice even though nothing guarantees it. That is the honest description: a convention that works, not a rule the format enforces — which is precisely why a program should take the JSON.
What neither export carries
The labels. A vCard says which number is the mobile and which the office, with TYPE=CELL and TYPE=WORK, and both exports write the numbers without them — the CSV because it has one phones column and the JSON because it stores a list of strings rather than a list of pairs. If the distinction matters to you, keep the .vcf, or add a column of your own before you import. It is a real limit and worth stating rather than discovering after two hundred contacts have landed with their mobiles labelled as landlines.
Frequently asked questions
- Can I edit the JSON and convert it back?
- The import side of these tools reads CSV, so a JSON you have edited needs a script of your own to become a .vcf again — which is usually the situation you were in anyway if you chose JSON. For hand edits that must come back through the tools, take the CSV, change it in a spreadsheet and rebuild from there.
- Is the JSON valid for any parser?
- Yes — it is a plain array of objects, indented, UTF-8, with no trailing commas and no comments. Note that it is not jCal, the standardised JSON form of vCard and iCalendar: it is a straightforward representation of the fields these tools read, which is easier to consume and carries less. If you need jCal specifically, keep the .vcf and convert it with a library that targets it.
Articles you may find interesting
All guides →Related tools
Sources
Spotted a mistake in this article?