https://github.com/rkdcoder/jsoon
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).
https://github.com/rkdcoder/jsoon
camelcase json-serialization nuget
Last synced: 5 months ago
JSON representation
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).
- Host: GitHub
- URL: https://github.com/rkdcoder/jsoon
- Owner: rkdcoder
- License: mit
- Created: 2025-07-15T18:07:27.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-15T20:13:59.000Z (11 months ago)
- Last Synced: 2025-10-05T20:18:55.313Z (8 months ago)
- Topics: camelcase, json-serialization, nuget
- Language: C#
- Homepage:
- Size: 1.71 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Jsoon
[](https://www.nuget.org/packages/Jsoon)
[](https://github.com/rkdcoder/jsoon/actions/workflows/main.yml)
[](LICENSE)
---
**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.
* 🚀 **Fácil de usar**: apenas `Jsoon.Serializer.Serialize(obj)` e `Jsoon.Serializer.Deserialize(json)`
* 🔒 **Seguro**: todas as exceções são encapsuladas em `Jsoon.JsonSerializerException`
* 📝 **Opinionated**: utiliza camelCase, propriedades case-insensitive e ignora nulos
* ♻️ **Reusável**: pronto para qualquer aplicação .NET moderna (.NET 8+)
---
## Instalação
Via NuGet:
```shell
dotnet add package Jsoon
```
Ou, no Package Manager:
```powershell
Install-Package Jsoon
```
---
## Como usar
```csharp
using Jsoon;
var pessoa = new Pessoa { Nome = "Rodrigo", Idade = 30 };
// Serializar para JSON
string json = Jsoon.Serializer.Serialize(pessoa);
// Desserializar de JSON
var pessoa2 = Jsoon.Serializer.Deserialize(json);
```
> **Obs:** Todos os erros de serialização/desserialização lançam `Jsoon.JsonSerializerException`.
### Exemplo completo
```csharp
public class Pessoa
{
public string Nome { get; set; } = string.Empty;
public int Idade { get; set; }
}
var pessoa = new Pessoa { Nome = "Rodrigo", Idade = 30 };
// Serializando
string json = Jsoon.Serializer.Serialize(pessoa); // {"nome":"Rodrigo","idade":30}
// Desserializando
Pessoa? resultado = Jsoon.Serializer.Deserialize(json);
```
---
## Principais opções utilizadas
* `camelCase` para nomes das propriedades
* Deserialização case-insensitive
* Ignora valores nulos ao serializar
* Baseado em `System.Text.Json` (`net8.0+`)
---
## Exceções
Todos os métodos públicos lançam **apenas** `Jsoon.JsonSerializerException` em caso de erro.
```csharp
try
{
var obj = Jsoon.Serializer.Deserialize("json inválido");
}
catch (JsonSerializerException ex)
{
// Trate o erro de serialização/desserialização aqui
}
```
---
## Testes
Inclui testes unitários cobrindo cenários de sucesso e falha.
Execute localmente com:
```shell
dotnet test --configuration Release
```
---
## CI/CD
* Pipeline GitHub Actions com build, testes e publicação automática no NuGet.org.
* Veja o workflow completo em [.github/workflows/nuget.yml](.github/workflows/main.yml).
---
## Contribuições
Contribuições são bem-vindas!
Abra uma issue ou envie um PR com sugestões, melhorias ou correções.
---
## License
Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.
---
**Autor:** Rodrigo
[GitHub](https://github.com/rkdcoder)