servicestack.text json .net 4.0での解析
-
10-10-2019 - |
質問
h chaps、私はjson parsingにservicestack.textを使用しようとしています(見たさまざまなベンチマークでjson.netよりも優れているようです)。しかし、私は期待している結果を得ていません。私が脱着しようとしているクラスは次のように見えます:
[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;
}
そして、私はこのようなパーサーを呼び出しています
public static class Json
{
public static T Deserialize<T>(string serialized)
{
return TypeSerializer.DeserializeFromString<T>(serialized);
}
}
...
RpcRequest<Params> myRequeset = Json.Deserialize(packet);
ただし、値が設定されていないコールからインスタンスを取り戻しています。すなわち Id
, Method
と Params
すべてnullです。このAPIを正しく使用していますか?
解決
ServiceStackは公共の場をサポートせず、公共の財産のみをサポートしているようです。したがって、モデルオブジェクトを次のように変更すると、すべてが機能します。
[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; }
}
各プロパティにゲッターとセッターの追加に注意してください。
他のヒント
私はあなたが欲しいと思います JsonSerializer
それ以外の TypeSerializer
.
TypeSerializer
Mythz氏がここで彼のブログで詳述している新しいファングルされたJSV形式です。 http://www.servicestack.net/mythz_blog/?p=176
所属していません StackOverflow