A really simple C# JSON parser in ~350 lines
- Attempts to parse JSON files with minimal GC allocation
- Nice and simple
"[1,2,3]".FromJson<List<int>>()API - Classes and structs can be parsed too!
classFoo{publicintValue;}"{\"Value\":10}".FromJson<Foo>()- Anonymous JSON is parsed into
Dictionary<string,object>andList<object>
vartest="{\"Value\":10}".FromJson<object>();intnumber=((Dictionary<string,object>)test)["Value"];- No JIT Emit support to support AOT compilation on iOS
- Attempts are made to NOT throw an exception if the JSON is corrupted or invalid: returns null instead.
- Only public fields and property setters on classes/structs will be written to
- You can optionally use
[IgnoreDataMember]and[DataMember(Name="Foo")]to ignore vars and override the default name
Limitations:
- No JIT Emit support to parse structures quickly
- Limited to parsing <2GB JSON files (due to int.MaxValue)
- Parsing of abstract classes or interfaces is NOT supported and will throw an exception.
- v1.1 Support added for Enums and fixed Unity compilation
- v1.0 Initial Release
This example will write a list of ints to a File and read it back again:
usingSystem;usingSystem.IO;usingSystem.Collections.Generic;usingTinyJson;publicstaticclassJsonTest{publicstaticvoidMain(string[]args){//Write a fileList<int>values=newList<int>{1,2,3,4,5,6};stringjson=values.ToJson();File.WriteAllText("test.json",json);//Read it backstringfileJson=File.ReadAllText("test.json");List<int>fileValues=fileJson.FromJson<List<int>>();}}Save this as JsonTest.cs then compile and run with mcs JsonTest.cs && mono JsonTest.exe
Simply copy and paste the JSON Parser and/or the JSON Writer into your project. I also provide NuGet but I recommend the copy paste route ;)
