Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-如何从json动态对象检索数组?_C#_Arrays_Json_Type Conversion - Fatal编程技术网

C#-如何从json动态对象检索数组?

C#-如何从json动态对象检索数组?,c#,arrays,json,type-conversion,C#,Arrays,Json,Type Conversion,我试图将数组直接从JSON“data”项获取到数组变量中: string jsonString = "{\"data\":[ {\"name\":false,\"number\":true}, {\"name\":false,\"number\":false}, {\"name\":true,\"number\":false}

我试图将数组直接从JSON“data”项获取到数组变量中:

string jsonString = "{\"data\":[
                       {\"name\":false,\"number\":true},
                       {\"name\":false,\"number\":false},
                       {\"name\":true,\"number\":false}
                     ]}";

var serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new[] { new DynamicJsonConverter() });
dynamic jsonObject = serializer.Deserialize(jsonString, typeof(object));

Array jsonArray = jsonObject.data;
// Here error says:
//Cannot implicitly convert type 'System.Collections.Generic.List<object>' to 'System.Array' 

dynamic lastJsonArrayData = jsonArray[jsonArray.Length - 1];
// this is where the error occurs, it says:
//Cannot apply indexing with [] to an expression of type 'Array'

您可以考虑创建类来映射序列化内容。 我的意思是,你需要创建一个

public class Example{
   public string name;
  public string number;
}
这里你需要把它改成

var serializer = new JavaScriptSerializer();
                serializer.RegisterConverters(new[] { new DynamicJsonConverter() });
                dynamic jsonObject = serializer.Deserialize(jsonString, typeof(Example));
希望本参考资料能让您更好地理解序列化和去序列化

希望这有帮助

这似乎有效:

var jsonArray = jsonObject.data.ToArray();

(Joel给了我一个提示。但是他声明了
Array jsonArray
。但它不起作用。)

实际上我还需要将数组放入foreach循环中。错误说明了什么?实际上错误似乎发生在第二步:错误说明了什么?它说:无法使用[]应用索引对于“Array”类型的表达式,我在这里发布了最简单的JSON结构,作为示例。但我真正的JSON包含数千项,结构远比这复杂。那么你是否尝试更改我建议的代码行…这仍然是相同的问题?此外,我尝试了简单JSON的解决方案,但仍然不起作用。嘿,检查此链接是否对你有帮助
var jsonArray = jsonObject.data.ToArray();