Записать JSON в файл как ленивый ByteString непосредственно из выходных данных кодирования Aeson без преобразования в строку

В настоящее время я использую что-то вроде этого для написания контента JSON (my_json) в файл (my_output_filepath):

import           Data.Aeson.Encode.Pretty
import qualified Data.ByteString.Lazy.UTF8 as U

writeFile my_output_filepath $ U.toString $ encodePretty my_json

Это работает, но мне интересно, нужно ли конвертировать ByteString что возвращается (encodePretty) к String перед записью в файл или если это повлечет за собой снижение производительности.

Я вижу, есть вариант writeFile который принимает ByteString в качестве ввода. Однако, когда я пытаюсь использовать его, я получаю эту ошибку:

Couldn't match expected type ‘B.ByteString’
            with actual type ‘U.ByteString’
NB: ‘B.ByteString’ is defined in ‘Data.ByteString.Internal’
    ‘U.ByteString’ is defined in ‘Data.ByteString.Lazy.Internal’

Есть ли способ получить Lazy вариант ByteString взаимодействовать с writeFile?

0 ответов

Другие вопросы по тегам