JSON не может содержать двоичные данные. То, о чем вы спрашиваете, напрямую невозможно.
Идеально, что нужно сделать, - это составной запрос, который вы получаете в своем первом примере. Обратите внимание, что одна из этих частей может быть JSON, и вы можете просто ссылаться на другую часть по имени или с каким-либо другим идентификатором.
Неправильный способ сделать это - закодировать данные base64 и поместить их в вашем JSON. Если вы сделаете это, вы получите то, о чем просите, за счет накладных расходов в размере 33% от размера файла, потраченного впустую ЦП и памяти на каждом конце для кодирования / декодирования и значительных потерь памяти для вашего парсера JSON, который теперь нужно перебрать все эти дополнительные данные.
Альтернативой является использование формата, поддерживающего двоичные данные, например CBOR . CBOR работает в браузерах , является потоковым , поддерживает все типы JSON, а также некоторые, расширяемый и стандартизованный .