# \[ANN\] JSONLines v.2.0.0

**URL:** <https://discourse.julialang.org/t/ann-jsonlines-v-2-0-0/45888>\
**Category:** Package Announcements\
**Created:** [September 1, 2020, 12:11pm UTC](https://discourse.julialang.org/t/ann-jsonlines-v-2-0-0/45888 "2020-09-01T12:11:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielw2904](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielw2904/32/10890_2.png) [@danielw2904](https://discourse.julialang.org/u/danielw2904)\
**Post date:** [September 1, 2020, 12:11pm UTC](https://discourse.julialang.org/t/ann-jsonlines-v-2-0-0/45888/1 "2020-09-01T12:11:25Z")

</div>

I am happy to announce v2 of the [JSONLines.jl package](https://github.com/danielw2904/JSONLines.jl). This is basically a complete rewrite but offers much more functionality. There are two main functions: Create an iterator over a JSONLines file (now `LineIterator`) or create an index of the rows (now `LineIndex`). Indexing takes one `Int` per row (+ some metadata like columnnames and types) in memory and should therefore be feasible even for large files. It can be materialized into memory using `materialize` which optionally takes a function as an argument that is applied to the rows in a map-like fashion and only the result is kept in memory. If no function is provided it materializes a `Vector{NamedTuple}` similar to `Tables.rowtable`. To get a columnwise representation of the data the `columnwise` function can be used (the result is similar to a `Tables.columntable`). In addition `filter` and `find*` functions have been implemented. Please let me know if you can think of any improvements or find something is not working. Especially support for JSON arrays as rows is not mature at the moment.
