go icon indicating copy to clipboard operation
go copied to clipboard

Added support for reading a string as an `io.Reader`

Open Webbmekanikern opened this issue 1 year ago • 0 comments

My use case was to read a base64 encoded file of unknown size, inside a JSON document that was sent via a webhook. I wanted to read it as a stream (io.Reader) to minimize memory usage and preventing crashes for huge strings:

func(body io.Reader) {
    iter := jsoniter.Parse(ConfigDefault, body, 4096)

    // Finding the wanted string is skipped here for brevity

    r := iter.ReadStringAsReader()
    dec := base64.NewDecoder(base64.StdEncoding, r)

    // Reading from `dec` is skipped here for brevity
}

Webbmekanikern avatar May 16 '24 17:05 Webbmekanikern