Eu tenho aulas como estas:
class MyDate
{
int year, month, day;
}
class Lad
{
string firstName;
string lastName;
MyDate dateOfBirth;
}
E eu gostaria de transformar um Lad
objeto em uma string JSON assim:
{
"firstName":"Markoff",
"lastName":"Chaney",
"dateOfBirth":
{
"year":"1901",
"month":"4",
"day":"30"
}
}
(sem a formatação). Encontrei este link , mas ele usa um espaço para nome que não está no .NET 4 . Eu também ouvi sobre o JSON.NET , mas o site deles parece estar inativo no momento e não estou interessado em usar arquivos DLL externos.
Existem outras opções além de criar manualmente um gravador de string JSON ?
c#
.net
json
serialization
Hui
fonte
fonte
Respostas:
Você pode usar a
JavaScriptSerializer
classe (adicione referência aSystem.Web.Extensions
):Um exemplo completo:
fonte
classes
parajson
formato, esperança ajuda a alguém.System.Web.Extensions
, você deve terASP.NET AJAX 1.0
ouASP.NET 3.5
instalar no seu sistema. Por favor, veja este stackoverflow.com/questions/7723489/…Desde que todos nós amamos one-liners
... este depende do pacote Newtonsoft NuGet, que é popular e melhor que o serializador padrão.
Documentation: JSON serializando e desserializando
fonte
Use Json.Net biblioteca , você pode baixá-lo no Nuget Packet Manager.
Serializando para Json String:
Desserializando para Objeto:
fonte
Use a
DataContractJsonSerializer
classe: MSDN1 , MSDN2 .Meu exemplo: AQUI .
Ele também pode desserializar objetos com segurança de uma sequência JSON, ao contrário
JavaScriptSerializer
. Mas pessoalmente ainda prefiro o Json.NET .fonte
Você pode conseguir isso usando o Newtonsoft.json. Instale o Newtonsoft.json do NuGet. E depois:
fonte
Wooou! Realmente melhor usando uma estrutura JSON :)
Aqui está o meu exemplo usando o Json.NET ( http://james.newtonking.com/json ):
O teste:
O resultado:
Agora vou implementar o método construtor que recebe uma string JSON e preenche os campos da classe.
fonte
Um novo serializador JSON está disponível no
System.Text.Json
espaço para nome. Ele está incluído na estrutura compartilhada do .NET Core 3.0 e está em um pacote NuGet para projetos direcionados ao .NET Standard ou .NET Framework ou .NET Core 2.x.Código de exemplo:
Neste exemplo, as classes a serem serializadas têm propriedades em vez de campos; a
System.Text.Json
serializador atualmente não serializa campos.Documentação:
fonte
Se eles não forem muito grandes, provavelmente o seu caso será exportado como JSON.
Também isso o torna portátil entre todas as plataformas.
fonte
Se você estiver em um controlador da Web ASP.NET MVC, é tão simples quanto:
Não posso acreditar que ninguém tenha mencionado isso.
fonte
Eu votaria no JSON Serializer do ServiceStack:
É também o serializador JSON mais rápido disponível para o .NET: http://www.servicestack.net/benchmarks/
fonte
Use o código abaixo para converter XML em JSON.
fonte
Use estas ferramentas para gerar uma classe C # e, em seguida, use este código para serializar seu objeto:
fonte
É tão fácil quanto isso (funciona também para objetos dinâmicos (tipo objeto)):
fonte
Serializer
Objeto
Implementação
Resultado
fonte