C#-如何从json动态对象检索数组?
我试图将数组直接从JSON“data”项获取到数组变量中: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}
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();