给定一个(Newtonsoft)JArray对象,其中包含多个项目,如何从正面弹出项目并反序列化?我认为这样可行:
if (jArray.Count > 0)
using (var reader = jArray.CreateReader())
return _serializer.Deserialize(reader, type);
但它抱怨那个数组符号。
答案 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>();