SV
1. JSON генерный и слабо структурирован. Если у нас протокол комуникации заранее (грубо говоря
int X at buffer[4:8]
) известен то JSON'нная динамика совершенно лишняя2. JSON совершенно не умеeт бинарку, файлы по нему не передать (можно, но Base64 это очень, очень дорого), приходится данные и малые файлы разбивать, что порой не очень удобно.
3. JSON текстовый, жрёт дохрена bandwidth, банальный
map[Int]Int
в нём превратится в:{"i": 1,"i": 2,"i": 3,"i": 4,"i": 5,"i": 6}
(43 байта)в то время когда это можно упаковать в ~28 байт, т.е. в 2 раза урезать без компрессии (и это лишь данные для примера, обычно разница ещё больше, потому-что никто обычно не урезает имена полей)