SERIALIZAR OBJETO IGNORANDO UMA PROPRIEDADE.
Pessoal,
Estou serializando JSON.
Dim IntCli = New INTClientes
With IntCli
Dim list As New List(Of INTEmails)
list.Add(New INTEmails With {.email = TXT_EMAIL.Text.Trim.ToLower})[ô]Só estou passando um email mesmo
[ô]list.Add(New INTEmails With {.email = [Ô]email2[Ô]})
.V_emails = list.ToList
End With
Dim json As String = JsonConvert.SerializeObject(IntCli)
Tenho:
Public Class INTEmails
Public V_email As String
Public Property email As String
Get
email = V_email
End Get
Set(value As String)
V_email = value
End Set
End Property
End Class
Public Class INTClientes
Public V_emails As List(Of INTEmails)
Public Property emails() As List(Of INTEmails)
Get
Return V_emails
End Get
Set(ByVal value As List(Of INTEmails))
V_emails = value
End Set
End Property
End Class
Serializado ficaria assim:
[Ô]emails[Ô]: [
{
[Ô]email[Ô]: [Ô]jose@zestore.com.br[Ô]
},
{
[Ô]email[Ô]: [Ô]marcos@zestore.com.br[Ô]
}
],
Acontece que se não existir nenhum email, eu preciso ignorar essa propriedade emails, o JSON não pode incluir ela na serialização.
Como posso fazer isso ?
Obrigado.
Estou serializando JSON.
Dim IntCli = New INTClientes
With IntCli
Dim list As New List(Of INTEmails)
list.Add(New INTEmails With {.email = TXT_EMAIL.Text.Trim.ToLower})[ô]Só estou passando um email mesmo
[ô]list.Add(New INTEmails With {.email = [Ô]email2[Ô]})
.V_emails = list.ToList
End With
Dim json As String = JsonConvert.SerializeObject(IntCli)
Tenho:
Public Class INTEmails
Public V_email As String
Public Property email As String
Get
email = V_email
End Get
Set(value As String)
V_email = value
End Set
End Property
End Class
Public Class INTClientes
Public V_emails As List(Of INTEmails)
Public Property emails() As List(Of INTEmails)
Get
Return V_emails
End Get
Set(ByVal value As List(Of INTEmails))
V_emails = value
End Set
End Property
End Class
Serializado ficaria assim:
[Ô]emails[Ô]: [
{
[Ô]email[Ô]: [Ô]jose@zestore.com.br[Ô]
},
{
[Ô]email[Ô]: [Ô]marcos@zestore.com.br[Ô]
}
],
Acontece que se não existir nenhum email, eu preciso ignorar essa propriedade emails, o JSON não pode incluir ela na serialização.
Como posso fazer isso ?
Obrigado.
Não sei se o parser que você está usando implementa isso, mas o JavascriptSerializer(System.Web.Extensions), você pode implementar assim:
KERPLUNK,
Não foi nesse link que você passou que encontrei a solução, mas ele me abriu a mente para buscar o que faltava, e achei isso aqui que resolveu.
Aqui
Vou colocar aqui que pode servir para mias alguém.
Então ficou assim:
Dim settings As JsonSerializerSettings = New JsonSerializerSettings
settings.NullValueHandling = NullValueHandling.Ignore
Dim json As String = JsonConvert.SerializeObject(IntCli, settings)
Mas ainda assim, tive que setar a propriedade como null caso não exista emails.
If TXT_EMAIL.Text.Trim = [Ô][Ô] Then
IsNothing(.V_emails)
end if
Cara você é chato, mas esta sempre na hora certa para ajudar. Sei que você não acredita, mas DEUS te abençoe.
Não foi nesse link que você passou que encontrei a solução, mas ele me abriu a mente para buscar o que faltava, e achei isso aqui que resolveu.
Aqui
Vou colocar aqui que pode servir para mias alguém.
Então ficou assim:
Dim settings As JsonSerializerSettings = New JsonSerializerSettings
settings.NullValueHandling = NullValueHandling.Ignore
Dim json As String = JsonConvert.SerializeObject(IntCli, settings)
Mas ainda assim, tive que setar a propriedade como null caso não exista emails.
If TXT_EMAIL.Text.Trim = [Ô][Ô] Then
IsNothing(.V_emails)
end if
Cara você é chato, mas esta sempre na hora certa para ajudar. Sei que você não acredita, mas DEUS te abençoe.
é praticamente a mesma coisa, a diferença é que o parser que está usando já implementa isso como propriedade...
Tópico encerrado , respostas não são mais permitidas