{"id":17008747,"url":"https://github.com/i-e-b/skinnyjson","last_synced_at":"2026-02-04T17:31:57.430Z","repository":{"id":3748977,"uuid":"4824016","full_name":"i-e-b/SkinnyJson","owner":"i-e-b","description":"Fast flexible json serialiser \u0026 deserialiser with support for contract-based workflows","archived":false,"fork":false,"pushed_at":"2024-10-11T15:46:09.000Z","size":1926,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T23:04:13.932Z","etag":null,"topics":["c-sharp","interface-segregation-principle","json","messaging","production-ready","serialisation","serialization"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/i-e-b.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-06-28T18:28:30.000Z","updated_at":"2024-10-11T15:46:14.000Z","dependencies_parsed_at":"2024-06-13T21:30:39.369Z","dependency_job_id":"de55b3b4-52ac-4110-8c33-e8e0ddf7c832","html_url":"https://github.com/i-e-b/SkinnyJson","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-e-b%2FSkinnyJson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-e-b%2FSkinnyJson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-e-b%2FSkinnyJson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-e-b%2FSkinnyJson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i-e-b","download_url":"https://codeload.github.com/i-e-b/SkinnyJson/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254053540,"owners_count":22006735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","interface-segregation-principle","json","messaging","production-ready","serialisation","serialization"],"created_at":"2024-10-14T05:29:10.887Z","updated_at":"2026-02-04T17:31:57.424Z","avatar_url":"https://github.com/i-e-b.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"SkinnyJson\n==========\n\n* NuGet: https://www.nuget.org/packages/SkinnyJson/\n* GitHub: https://github.com/i-e-b/SkinnyJson\n\nSkinnyJson has a simple interface, and handles interface based serialisation better than most other .Net json libraries.\nSkinnyJson was designed to handle Event Store messages, and is tuned to\ndeal with situations where a common interface declaration is available, but the original serialised objects/types are not available.\n\nThings SkinnyJson can do that most .Net serialisers don't\n-----------------------------------------------------------\n\n- Decode directly to an interface: `IThing x = Json.Defrost\u003cIThing\u003e(...)`. You don't need to create a concrete container.\n- Serialise to and from static classes: `var jsonStr = Json.Freeze(typeof(MyStatic)); Json.DefrostTo(typeof(MyStatic), jsonStr);`\n- Reformat huge documents: `Json.BeautifyStream(fileStreamIn, Encoding.ASCII, fileStrealOutput, Encoding.UTF8);`\n\nCommon use cases:\n----------\n\nDeserialise a known type:\n```csharp\nIMyInterface values = Json.Defrost\u003cIMyInterface\u003e(jsonString);\n```\n\nSerialise any object to JSON:\n```csharp\nstring jsonString = Json.Freeze(myObject);\n```\n\nPretty print a JSON string: (there is also a streaming version for very large files)\n```csharp\nvar newString = Json.Beautify(oldString);\n```\n\nCreate a deep copy of an object:\n```csharp\nvar newObject = Json.Clone(oldObject);\n```\n\nDeserialise to a dynamic type for unknown schemas:\n```csharp\ndynamic obj = Json.DefrostDynamic(jsonString);\nConsole.WriteLine(obj.MyProperty.MyArray[4].Prop2()); // use `()` to read a value.\nvar missing = obj.NotHere.child.grandchild(); // results in null. Dynamic does null propagation.\n\nobj.MyProperty.other = \"hello\"; // can update properties\nvar updatedJson = Json.Freeze(obj); // and serialise the result\n```\n\nInline editing:\n```csharp\nstring newJson = Json.Edit(oldJson, d =\u003e {\n    d.myProperty.updated = true;\n    d.info.updates[0].dateTime = DateTime.Now.ToString();\n});\n```\n\nSee the test cases for deeper examples\n\nOriginally based on FastJson: https://github.com/mgholam/fastJSON","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-e-b%2Fskinnyjson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fi-e-b%2Fskinnyjson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-e-b%2Fskinnyjson/lists"}