2016-04-15 13 views
0

私は、プロパティの1つがキーと値の長いリストを持つオブジェクトである逆シリアル化のためにJsonをモデル化しようとしています。私のアプリケーションでJson.Net JObjectや辞書に逆シリアル化する方が速いのですか?

{ 
    "key1": "value1", 
    "key2": "value2", 

    //this guy 
    "longlist": { 
     "6060": 123, 
     "6061": 664, 
... 
     "6200": 43 
    } 
} 

、私は私だけ別のlonglistを追加できるようにしたい、longlist内部を見る必要はありません。

longlistDictionary<string, int>として、またはJObjectとモデル化する方が良いですか?それぞれに対してデシリアライズのパフォーマンスを考慮してください。

編集:longlistのキーの順序は関係ありません。

+1

それはあなたが出て見つけることに本当に興味があるなら、自分に近づいて、時間ができ –

+2

正直に言うと、アプリケーションで問題になるまで、私はパフォーマンスを心配しないでしょう。データに依存している可能性が高いので、自分でテストすると、最良の答えが得られます。 – itsme86

+1

Eric Lippertからの関連のアドバイス:[2頭の馬がいて、どちらが速いのかを知りたければ**あなたの馬を競う** **](https://ericlippert.com/2012/12/ 17/performance-rant /) – dbc

答えて

0
public class RootObject 
{ 
    public string key1 { get; set; } 
    public string key2 { get; set; } 
    public Dictionary<string, int> longlist { get; set; } 
} 

JObject jsonResponse = JObject.Parse(r);

JObject objResponse = (JObject)jsonResponse["longlist"]; 
RootObject _Data = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonResponse.ToString()); 

foreach (KeyValuePair<string, int> kvp in _Data.longlist) 
{ 
    Console.WriteLine(string.Format("Key: {0} Value: {1}", kvp.Key, kvp.Value)); 
} 

フィドル:https://dotnetfiddle.net/9ZyKwN

+0

JObjectまたはDictionaryに逆シリアル化して、時間のかかるものではありません。 –

関連する問題