JQL.Net 1.0.3

dotnet add package JQL.Net --version 1.0.3
                    
NuGet\Install-Package JQL.Net -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JQL.Net" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JQL.Net" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="JQL.Net" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JQL.Net --version 1.0.3
                    
#r "nuget: JQL.Net, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package JQL.Net@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JQL.Net&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=JQL.Net&version=1.0.3
                    
Install as a Cake Tool

🚀 JQL.Net (JSON Query Language for .NET)

NuGet License: MIT

Bring the power of SQL to your JSON! 🎯

JQL.Net is a lightweight, high-performance query engine that lets you search, join, and aggregate raw JSON data using familiar SQL-like syntax. Perfect for those moments when you have complex JSON structures but don't want the overhead of a database.


✨ Features

  • 🔍 SQL-Like Syntax: Use SELECT, FROM, WHERE, JOIN, GROUP BY, HAVING, and ORDER BY.
  • 🤝 Advanced Joins: Support for multiple conditions in ON using AND / OR logic.
  • 🧮 Aggregations: Built-in support for SUM, COUNT, AVG, MIN, and MAX.
  • ☁️ Case-Insensitive: Keywords like select or SELECT? We don't judge. It just works.
  • 🏷️ Alias Support: Use AS to keep your results clean and readable.
  • Lightweight: Zero database dependencies. Just you and your JSON.

📦 Installation

Grab it on NuGet:

dotnet add package JQL.Net

🚀 Quick Start

Using JQL.Net is as easy as ordering pizza. Check this out:

using JQL.Net.Extensions;
using Newtonsoft.Json.Linq;

// 1. Your raw JSON data
var json = @"{
    'employees': [
        { 'id': 1, 'name': 'John Doe', 'dept_id': 10, 'salary': 8000 },
        { 'id': 2, 'name': 'Jane Smith', 'dept_id': 10, 'salary': 9500 }
    ],
    'departments': [
        { 'id': 10, 'name': 'IT', 'budget': 20000 }
    ]
}";

var data = JObject.Parse(json);

// 2. Write your 'SQL'
string query = @"
    SELECT e.name, d.name AS DeptName
    FROM $.employees AS e
    JOIN $.departments AS d ON e.dept_id == d.id
    WHERE e.salary > 5000";

// 3. Execute!
var results = data.Query(query);

foreach (var row in results) {
    Console.WriteLine($"{row["name"]} works in {row["DeptName"]}");
}

💡 Cool Examples

Complex Joins (The 'AND/OR' Power) 🦾

Need to link data with multiple rules? No problem:

SELECT e.name, p.proj_name 
FROM $.employees AS e 
JOIN $.projects AS p ON e.proj_id == p.id AND p.status == 'Active'

Aggregations & Having 📊

Want to find big-spending departments?

SELECT d.name, SUM(salary) AS total_cost 
FROM $.employees AS e 
JOIN $.departments AS d ON dept_id == id 
GROUP BY d.name 
HAVING total_cost > d.budget

🛠️ Supported Keywords

Keyword Description
SELECT Choose which fields to return (supports Aliases).
FROM Define the JSON path (default is $).
JOIN Combine two JSON arrays with ON logic.
WHERE Filter results with ==, !=, >, <, etc.
GROUP BY Bundle results by specific fields.
HAVING Filter aggregated groups.
ORDER BY Sort your output.

🤝 Contributing

Got a cool idea or found a bug? 🐛

  1. Fork it!
  2. Create your feature branch (git checkout -b feature/cool-stuff)
  3. Commit your changes (git commit -m 'Add some cool stuff')
  4. Push to the branch (git push origin feature/cool-stuff)
  5. Open a Pull Request.

📄 License

This project is licensed under the MIT License.


Made with ❤️ for the .NET Community. If you find JQL.Net useful, give it a ⭐ on GitHub!

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 0 3/19/2026
1.0.2 0 3/19/2026
1.0.0 0 3/19/2026