JArray的前置弹出功能

时间:2015-09-16 03:38:58

标签: c# json.net

给定一个(Newtonsoft)JArray对象,其中包含多个项目,如何从正面弹出项目并反序列化?我认为这样可行:

if (jArray.Count > 0)
    using (var reader = jArray.CreateReader())
            return _serializer.Deserialize(reader, type);

但它抱怨那个数组符号。

1 个答案:

答案 0 :(得分:1)

您可以创建一个扩展方法:

public static class JsonExtensions
{
    public static T Pop<T>(this JArray jArray)
    {
        T obj = default(T);
        if (jArray.Count > 0)
        {
            obj = jArray[0].ToObject<T>();
            jArray.RemoveAt(0);
        }
        return obj;
    }
}

然后你可以这样做:

Foo foo = jArray.Pop<Foo>();

小提琴:https://dotnetfiddle.net/ChdMhX