A Go package providing an ODM-like API to query and aggregate JSON, YAML, XML, and CSV data.
GoJSONQ is a Go package that provides a simple, elegant, and fast API for querying and aggregating data from JSON, YAML, XML, and CSV sources. It solves the problem of efficiently accessing and manipulating structured data without requiring extensive boilerplate code or external dependencies.
Go developers who need to parse, filter, or aggregate data from JSON, YAML, XML, or CSV files in their applications, especially those working with configuration files, API responses, or data exports.
Developers choose GoJSONQ for its clean, chainable API that resembles an ODM, its support for multiple data formats with a consistent interface, and its focus on performance and minimalism within the Go ecosystem.
A simple Go package for querying over JSON, YAML, XML, and CSV data.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers an ODM-inspired interface with methods like Where, Sort, and GroupBy that can be chained for complex queries, making code readable and maintainable, as demonstrated in the README examples.
Works seamlessly with JSON, YAML, XML, and CSV using a consistent query API, eliminating the need for separate parsers for different formats.
Includes functions like Avg, Sum, Min, Max, and Count for direct data analysis on datasets, as shown in the temperature averaging example.
Prioritizes simplicity and performance with minimal external dependencies, keeping the package lightweight and easy to integrate, as stated in the philosophy.
Limited to querying and aggregation only; lacks methods for updating, inserting, or deleting data within the structured formats, which restricts use cases to read-only operations.
Returns results as interface{} types, requiring manual type assertions that can lead to runtime panics if not handled carefully, as seen in the examples where name.(string) is used.
Loads entire data into memory for querying, which may not scale well with very large JSON or CSV files compared to streaming alternatives.