DotJEM.StructureQL.Json
1.0.12
See the version list below for details.
dotnet add package DotJEM.StructureQL.Json --version 1.0.12
NuGet\Install-Package DotJEM.StructureQL.Json -Version 1.0.12
<PackageReference Include="DotJEM.StructureQL.Json" Version="1.0.12" />
paket add DotJEM.StructureQL.Json --version 1.0.12
#r "nuget: DotJEM.StructureQL.Json, 1.0.12"
// Install DotJEM.StructureQL.Json as a Cake Addin #addin nuget:?package=DotJEM.StructureQL.Json&version=1.0.12 // Install DotJEM.StructureQL.Json as a Cake Tool #tool nuget:?package=DotJEM.StructureQL.Json&version=1.0.12
StructureQL
Structure QL, not to be confused with Structured Query Language (SQL) (Could not come up with a better name for now). Is a small frame work targeted at enabling REST/HTTP framworks to ease implementation of partial returns based on structured data, currently aimed specifically at JSON.
Examples
Given the following JSON:
{
"id": "GPL-2.0",
"identifiers": [
{
"identifier": "GPL-2.0",
"scheme": "DEP5"
},
{
"identifier": "GPL-2.0",
"scheme": "SPDX"
},
{
"identifier": "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"scheme": "Trove"
}
],
"links": [
{
"note": "tl;dr legal",
"url": "https://tldrlegal.com/license/gnu-general-public-license-v2"
},
{
"note": "Wikipedia page",
"url": "https://en.wikipedia.org/wiki/GNU_General_Public_License"
},
{
"note": "OSI Page",
"url": "https://opensource.org/licenses/GPL-2.0"
}
],
"name": "GNU General Public License, Version 2.0",
"other_names": [],
"superseded_by": "GPL-3.0",
"keywords": [
"osi-approved",
"popular",
"copyleft"
],
"text": [
{
"media_type": "text/plain",
"title": "Plain Text",
"url": "https://www.gnu.org/licenses/gpl-2.0.txt"
},
{
"media_type": "text/html",
"title": "HTML",
"url": "https://www.gnu.org/licenses/gpl-2.0-standalone.html"
}
]
}
Using DotJEM.StructureQL.Json, we can query into the document with the following queries:
Return the entire document:
**
or {**}
Return only top level primitive fields:
*
or {*}
Return specific named properties:
{id,name}
Return id, name and all identifiers:
{id,name,identifiers:*}
, {id,name,identifiers:**}
, {id,name,identifiers:{*}}
or {id,name,identifiers:{**}}
Because each of the identifier objects only has top level promitives, both *
and **
works the same here, if there was nested properties and we wanted the full identifier objects we either need to use **
/{**}
or query specifically for properties and child properties of the object.
Return id, name and a range of identifiers:
{id,name,identifiers:[0..1]*}
, {id,name,identifiers:[0..1]**}
, {id,name,identifiers:[0..1]{*}}
or {id,name,identifiers:[0..1]{**}}
If we know a property is an array, we can add [<from>..<to>]
in front of the query on that object to select only a number of items in the array.
Both from and to are optional, where [1..]
selects elements from index 1 and up, [..1]
selects element 0 and 1 and [..]
means all and is redundant to just leaving it out.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DotJEM.StructureQL (>= 1.0.12)
- Newtonsoft.Json (>= 13.0.1)
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.25 | 569 | 12/15/2022 |
1.0.24 | 88 | 12/15/2022 |
1.0.22 | 79 | 10/7/2022 |
1.0.21 | 980 | 8/24/2022 |
1.0.20 | 102 | 8/23/2022 |
1.0.19 | 98 | 8/23/2022 |
1.0.18 | 111 | 8/23/2022 |
1.0.17 | 102 | 8/23/2022 |
1.0.16 | 103 | 8/23/2022 |
1.0.15 | 99 | 8/23/2022 |
1.0.14 | 100 | 8/23/2022 |
1.0.13 | 106 | 8/23/2022 |
1.0.12 | 103 | 8/23/2022 |
1.0.11 | 100 | 8/23/2022 |
1.0.10 | 107 | 8/23/2022 |
1.0.8 | 98 | 8/22/2022 |
1.0.0 | 379 | 8/22/2022 |