{"id":31679203,"url":"https://github.com/rkdcoder/jsoon","last_synced_at":"2026-01-20T17:37:18.134Z","repository":{"id":304872878,"uuid":"1020344237","full_name":"rkdcoder/jsoon","owner":"rkdcoder","description":"Jsoon é um utilitário leve e direto para serialização e desserialização JSON no .NET 8+, baseado em System.Text.Json. Ele aplica convenções padronizadas (camelCase, case-insensitive, ignore nulls) e encapsula todos os erros em uma exceção unificada (JsonSerializerException).","archived":false,"fork":false,"pushed_at":"2025-07-15T20:13:59.000Z","size":1792,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T20:18:55.313Z","etag":null,"topics":["camelcase","json-serialization","nuget"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rkdcoder.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,"zenodo":null}},"created_at":"2025-07-15T18:07:27.000Z","updated_at":"2025-09-03T19:55:37.000Z","dependencies_parsed_at":"2025-07-16T22:13:47.988Z","dependency_job_id":"f7d1ba40-57da-4299-8c35-4630aa793d34","html_url":"https://github.com/rkdcoder/jsoon","commit_stats":null,"previous_names":["rkdcoder/jsoon"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rkdcoder/jsoon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkdcoder%2Fjsoon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkdcoder%2Fjsoon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkdcoder%2Fjsoon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkdcoder%2Fjsoon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rkdcoder","download_url":"https://codeload.github.com/rkdcoder/jsoon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkdcoder%2Fjsoon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278903011,"owners_count":26065786,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["camelcase","json-serialization","nuget"],"created_at":"2025-10-08T06:46:01.535Z","updated_at":"2025-10-08T06:46:06.588Z","avatar_url":"https://github.com/rkdcoder.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jsoon\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/rkdcoder/jsoon/main/src/Jsoon/Media/icon.png\" width=\"128\" alt=\"Jsoon logo\" /\u003e\n\u003c/p\u003e\n\n[![NuGet](https://img.shields.io/nuget/v/Jsoon.svg)](https://www.nuget.org/packages/Jsoon)\n[![Build \u0026 Publish](https://github.com/rkdcoder/jsoon/actions/workflows/main.yml/badge.svg)](https://github.com/rkdcoder/jsoon/actions/workflows/main.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n---\n\n**Jsoon** é um utilitário estático, enxuto e robusto para serialização e desserialização JSON no .NET, baseado em `System.Text.Json` com opções padronizadas e tratamento de erro customizado.\n\n* 🚀 **Fácil de usar**: apenas `Jsoon.Serializer.Serialize(obj)` e `Jsoon.Serializer.Deserialize\u003cT\u003e(json)`\n* 🔒 **Seguro**: todas as exceções são encapsuladas em `Jsoon.JsonSerializerException`\n* 📝 **Opinionated**: utiliza camelCase, propriedades case-insensitive e ignora nulos\n* ♻️ **Reusável**: pronto para qualquer aplicação .NET moderna (.NET 8+)\n\n---\n\n## Instalação\n\nVia NuGet:\n\n```shell\ndotnet add package Jsoon\n```\n\nOu, no Package Manager:\n\n```powershell\nInstall-Package Jsoon\n```\n\n---\n\n## Como usar\n\n```csharp\nusing Jsoon;\n\nvar pessoa = new Pessoa { Nome = \"Rodrigo\", Idade = 30 };\n\n// Serializar para JSON\nstring json = Jsoon.Serializer.Serialize(pessoa);\n\n// Desserializar de JSON\nvar pessoa2 = Jsoon.Serializer.Deserialize\u003cPessoa\u003e(json);\n```\n\n\u003e **Obs:** Todos os erros de serialização/desserialização lançam `Jsoon.JsonSerializerException`.\n\n### Exemplo completo\n\n```csharp\npublic class Pessoa\n{\n    public string Nome { get; set; } = string.Empty;\n    public int Idade { get; set; }\n}\n\nvar pessoa = new Pessoa { Nome = \"Rodrigo\", Idade = 30 };\n\n// Serializando\nstring json = Jsoon.Serializer.Serialize(pessoa); // {\"nome\":\"Rodrigo\",\"idade\":30}\n\n// Desserializando\nPessoa? resultado = Jsoon.Serializer.Deserialize\u003cPessoa\u003e(json);\n```\n\n---\n\n## Principais opções utilizadas\n\n* `camelCase` para nomes das propriedades\n* Deserialização case-insensitive\n* Ignora valores nulos ao serializar\n* Baseado em `System.Text.Json` (`net8.0+`)\n\n---\n\n## Exceções\n\nTodos os métodos públicos lançam **apenas** `Jsoon.JsonSerializerException` em caso de erro.\n\n```csharp\ntry\n{\n    var obj = Jsoon.Serializer.Deserialize\u003cMyType\u003e(\"json inválido\");\n}\ncatch (JsonSerializerException ex)\n{\n    // Trate o erro de serialização/desserialização aqui\n}\n```\n\n---\n\n## Testes\n\nInclui testes unitários cobrindo cenários de sucesso e falha.\n\nExecute localmente com:\n\n```shell\ndotnet test --configuration Release\n```\n\n---\n\n## CI/CD\n\n* Pipeline GitHub Actions com build, testes e publicação automática no NuGet.org.\n* Veja o workflow completo em [.github/workflows/nuget.yml](.github/workflows/main.yml).\n\n---\n\n## Contribuições\n\nContribuições são bem-vindas!\nAbra uma issue ou envie um PR com sugestões, melhorias ou correções.\n\n---\n\n## License\n\nEste projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n**Autor:** Rodrigo\n[GitHub](https://github.com/rkdcoder)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkdcoder%2Fjsoon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frkdcoder%2Fjsoon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkdcoder%2Fjsoon/lists"}