2011-07-26 4 views
0

のためのデシリアライゼーションの種類これは、2つの部分の質問のようなものです。私は最初のことだと思う、私はこれを行うことについて最善の方法を行っていると私はヒットしたロードブロッキングです。次のコードは、文字列プロパティに対しては機能しますが、intなどでは機能しません。私は文字列としてKVPのint値を取得しますが、プロパティの文字列にintを設定することはできません。私は解析できる構文を見つけることができません。KeyValuePairsのセットをオブジェクトインスタンスに変換します。 JSON

[WebInvoke(UriTemplate = "", Method = "POST")] 
public Response Post(JsonValue items) 
{ 
    List<Provider> providers = new List<Provider>(); 
    foreach (var item in items) 
    { 
     var json = item.Value; 
     var provider = new Provider(); 

     foreach (var property in typeof(Provider).GetProperties()) 
     { 
      if (json.ContainsKey(property.Name)) 
       property.SetValue(provider, json[property.Name].ToString(), null); 
     } 

     providers.Add(provider); 
    } 

    return new Response { success = true, data = providers }; 
} 

答えて

1

あなたはproperty.PropertyTypeswitchを行うと、それに応じて文字列を解析することができます。

しかし、私は自分自身のJSONのデシリアライザを書くことをお勧めしません。 DataContract API:Tutorialを使用してください。

関連する問題