给定一个(Newtonsoft) JArray对象,其中包含多个项目,我如何将项目从前面弹出并反序列化它?我想这会有用:
if (jArray.Count > 0)
using (var reader = jArray.CreateReader())
return _serializer.Deserialize(reader, type);
但是它抱怨那个数组符号。
您可以创建一个扩展方法:
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