Domanda

screpolature H, Sto cercando di utilizzare ServiceStack.Text per JSON parsing (sembra funzionare meglio di JSON.Net in vari punti di riferimento che ho visto). Ma io non sto ottenendo i risultati che mi aspetto. La classe Sto tentando di sguardi deserializzare in questo modo:

[DataContract]
public class RpcRequest<T>
{
    [JsonProperty("id")]
    [DataMember(Name="id")]
    public String Id;

    [JsonProperty("method")]
    [DataMember(Name="method")]
    public String Method;

    [JsonProperty("params")]
    [DataMember(Name="params")]
    public T Params;

    [JsonIgnore]
    [IgnoreDataMember]
    public Policy Policy;
}

E sto invocando il parser come questo

public static class Json
{
    public static T Deserialize<T>(string serialized)
    {
        return TypeSerializer.DeserializeFromString<T>(serialized);
    }
}
...
RpcRequest<Params> myRequeset = Json.Deserialize(packet);

Comunque sto ottenendo un indietro esempio da quella chiamata, che non ha nulla della valori impostati. cioè Id, Method e Params sono tutti nulli. Sto usando correttamente questa API?

È stato utile?

Soluzione

Sembra che ServiceStack non supporta i campi pubblici, solo le proprietà pubbliche. Quindi, se io cambio il mio oggetto del modello al seguente tutto funziona.

[DataContract]
public class RpcRequest<T>
{
    [JsonProperty("id")]
    [DataMember(Name="id")]
    public String Id { get; set; }

    [JsonProperty("method")]
    [DataMember(Name="method")]
    public String Method { get; set; }

    [JsonProperty("params")]
    [DataMember(Name="params")]
    public T Params { get; set; }

    [JsonIgnore]
    [IgnoreDataMember]
    public Policy Policy { get; set; }
}

Si noti l'aggiunta di getter e setter per ogni proprietà.

Altri suggerimenti

Penso che si desidera JsonSerializer invece di TypeSerializer.

TypeSerializer è un nuovo conio formato JSV che il signor Mythz dettagli sul suo blog qui: http: //www.servicestack.net/mythz_blog/?p=176

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top