42Entwickler.Json
1.0.0.1
dotnet add package 42Entwickler.Json --version 1.0.0.1
NuGet\Install-Package 42Entwickler.Json -Version 1.0.0.1
<PackageReference Include="42Entwickler.Json" Version="1.0.0.1" />
<PackageVersion Include="42Entwickler.Json" Version="1.0.0.1" />
<PackageReference Include="42Entwickler.Json" />
paket add 42Entwickler.Json --version 1.0.0.1
#r "nuget: 42Entwickler.Json, 1.0.0.1"
#:package 42Entwickler.Json@1.0.0.1
#addin nuget:?package=42Entwickler.Json&version=1.0.0.1
#tool nuget:?package=42Entwickler.Json&version=1.0.0.1
42Entwickler.JSON - JSON Lexer
This library contains a JSON lexer that can be used to parse JSON strings into a more manageable format. It is designed to be fast and efficient, making it suitable for use in performance-critical applications.
The lexer is implemented in C# and is compatible with .NET Standard 2.1 and later versions. It can be used in any .NET application, including ASP.NET, Xamarin, and Unity.
If you want to write your own JSON Parser, you can use this lexer as a starting point. It provides a simple and efficient way to tokenize JSON strings, allowing you to focus on the parsing logic.
Usage
using _42Entwickler.Json;
string jsonString = "{\"visit\":\"https://www.youtube.com/c/42Entwickler\"}";
JsonLexer lexer = new JsonLexer(jsonString);
do {
Token token = lexer.GetNextSy();
Console.WriteLine(token.Value);
} while (token.Type != TokenType.EOF);
EBNF gramar for JSON
The following is the EBNF grammar for JSON, which describes the structure of JSON data. This grammar can be used to understand how JSON data is organized and how it can be parsed.
json ::= value
value ::= object | array | string | number | "true" | "false" | "null"
object ::= "{" ws "}"
| "{" members "}"
members ::= pair | pair "," members
pair ::= string ":" value
array ::= "[" ws "]"
| "[" elements "]"
elements ::= value | value "," elements
string ::= "\"" chars "\""
chars ::= char | char chars
char ::= any-Unicode-character-except-"-or-\-or-control-character
| "\" escape
escape ::= "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t"
| "u" hex hex hex hex
hex ::= digit | "A"–"F" | "a"–"f"
number ::= int frac? exp?
int ::= digit | digit1-9 digits | "-" digit | "-" digit1-9 digits
frac ::= "." digits
exp ::= ("e" | "E") ("+" | "-")? digits
digits ::= digit | digit digits
digit ::= "0" | digit1-9
digit1-9 ::= "1"–"9"
ws ::= *( " " | "\t" | "\r" | "\n" )
| 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. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | 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.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.