SERIALIZAR OBJETO IGNORANDO UMA PROPRIEDADE.

NILSONTRES 28/07/2017 15:15:51
#475496
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.

KERPLUNK 28/07/2017 15:24:42
#475497
Resposta escolhida
Não sei se o parser que você está usando implementa isso, mas o JavascriptSerializer(System.Web.Extensions), você pode implementar assim:
NILSONTRES 28/07/2017 16:19:03
#475498
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.
KERPLUNK 28/07/2017 16:48:26
#475500
é 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