2011-09-19 23 views
6

estoy usando Json.net, tengo una clase de la siguiente manerajson.net propiedad requerida no se encuentra en JSON

public class RecordAlias 
    { 
     [JsonProperty(PropertyName = "eId", Required = Required.Always)] 
     public string EntityId { get; set; } 

     [JsonProperty(PropertyName = "aId", Required = Required.AllowNull)] 
     public string AliasId { get; set; } 

     [JsonProperty(PropertyName = "iSd", Required = Required.AllowNull)] 
     public bool IsSelected { get; set; } 
    } 

para que los siguientes JSON se puede deserializar incluso a través de algunos artículos no tienen la propiedad "iSd "en la cadena JSON, esperaría un valor predeterminado de ese tipo debe rellenarse si no está presente, por ejemplo, IsSelected debe ser falsa, excepto último elemento

 [{ 
     "eId" : "30022004", 
     "aId" : "1" 
    }, { 
     "eId" : "30021841", 
     "aId" : "1" 
    }, { 
     "eId" : "30021848", 
     "aId" : "1" 
     "iSd" : true 
    } 
] 

alguna idea de cómo puedo lograr esto?

Respuesta

7

No está especificando eId en su cadena JSON, y está configurado para ser necesario. Estás pasando rId ... ¿es esto lo mismo?

Si no entiendo la pregunta, hágamelo saber y actualizaré mi respuesta.

ACTUALIZACIÓN: Usted está indicando que la propiedad es iSdAllowNull. Aún debe especificar un valor para esta propiedad en su cadena JSON, pero puede ser nulo. Según JSON.NET specs:

La propiedad se debe definir en JSON pero puede ser un valor nulo.

es necesario especificar un valor para iSd ... o marcar iSd en su atributo JsonProperty como DefaultValue. Para DefaultValue, la spec dice: no se requiere

La propiedad. El estado predeterminado.

[JsonProperty(PropertyName = "iSd", Required = Required.Default)] 
public bool IsSelected { get; set; } 

espero que esto ayude.

+0

lo siento, he cometido un error al copiar pegado .. he actualizado mi pregunta – Ming

+0

He actualizado mi respuesta. –

+0

Algunas cadenas json no tienen esa propiedad ya que la propiedad es opcional ... ¿cómo puede hacer que la clase acepte una cadena json que no tiene cierto valor de propiedad? – Ming

1

Haga la propiedad a bool no a string.

+0

lo siento cometí un error al copiar mi clase, he actualizado mi pregunta – Ming

Cuestiones relacionadas