无法从对象数组中提取值,反序列化了javascript数组

时间:2015-06-13 21:00:01

标签: c# arrays object serialization

var serializedArray = new JavaScriptSerializer().Deserialize<object[]>(filter);

变量filter的内容为[["Title","contains","foo"],"and",["Name","contains","foo"]]

serializedArray的内容为"object[3]","and","object[3]"

serializedArray[0]的内容为object[3] "Title", "contains", "foo"

serializedArray可与索引运算符一起使用,foreach适用。但不适用于serializedArray[0]

有趣的是,serializedArrayserializedArray[0]的类型都为Object[]. 什么是获取价值的方式&#34; Title&#34;或&#34;姓名&#34;?

1 个答案:

答案 0 :(得分:1)

           var serializedArray = new JavaScriptSerializer().Deserialize<object[]>(filter);

            foreach (var item in serializedArray)
            {
               if (item is string)
               {
                  var element = item;
               }
               else
                  foreach (var innerItem in (object[])item)
                  {
                     var element = innerItem;
                  }
            }