Json.Net反序列化为JObject还是Dictionary更快?

时间:2016-04-15 14:34:19

标签: c# performance json.net

我正在尝试为反序列化建模Json,其中一个属性是一个带有长键和值列表的对象。

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

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

在我的应用程序中,我不需要查看longlist内部,我只希望能够将longlist附加到另一个{。}}。

考虑到每个人的反序列化效果,我将longlist建模为Dictionary<string, int>还是JObject是否更好?

编辑:longlist中的键顺序无关紧要。

1 个答案:

答案 0 :(得分: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