2015-09-16 55 views
0

給定一個(Newtonsoft)JArray對象,其中包含多個項目,如何從前端彈出該項目並對其進行反序列化?我認爲這會工作:JArray的前置功能

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

但它抱怨該數組符號。

回答

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