小编Yua*_*ang的帖子

Rust语言中String的模式匹配

可以解析<path>部分GET /<path> HTTP/1.1使用模式匹配,或任何优雅而不是直接字符串操作,如splitslice

string rust

6
推荐指数
1
解决办法
1664
查看次数

如何使用Data.Text.Lazy.IO用Aeson解析JSON文件

我想将给定目录中的所有json文件解析为数据类型Result.

所以我有一个解码功能

decodeResult :: Data.ByteString.Lazy.ByteString -> Maybe Result
Run Code Online (Sandbox Code Playgroud)

我从Data.Text.Lazy.IO开始将文件加载到Lazy ByteString中,

import qualified Data.Text.Lazy.IO as T
import qualified Data.Text.Lazy.Encoding as T

getFileContent :: FilePath -> IO B.ByteString
getFileContent path = T.encodeUtf8 `fmap` T.readFile path
Run Code Online (Sandbox Code Playgroud)

它编译了,但我遇到了太多文件打开的问题,所以我想也许我应该使用withFile.

import System.IO
import qualified Data.ByteString.Lazy as B
import qualified Data.Text.Lazy.IO as T
import qualified Data.Text.Lazy.Encoding as T

getFileContent :: FilePath -> IO (Maybe Result)
getFileContent path = withFile path ReadMode $ \hnd -> do
   content <- T.hGetContents hnd
   return $ …
Run Code Online (Sandbox Code Playgroud)

io json haskell lazy-evaluation aeson

4
推荐指数
1
解决办法
170
查看次数

标签 统计

aeson ×1

haskell ×1

io ×1

json ×1

lazy-evaluation ×1

rust ×1

string ×1