[英]JsonSerializer.Deserialize<T>(); in System.Text.Json not deserialize correctly
[英]System.Text.Json JsonSerializer.Deserialize<TValue>(...) cannot deserialize object[] type
我想将我的JSON
字符串值解析为object[]
类型,但它总是返回System.Text.Json.JsonElement[]
类型。
var data = JsonSerializer.Deserialize<object[]>("[\"abcd\",\"efgh\",\"ijkl\",\"mnop\"]", null);
foreach (var _ in data) Console.WriteLine(_.GetType().FullName);
预计 Output:
System.Object
System.Object
System.Object
System.Object
实际 Output:
System.Text.Json.JsonElement
System.Text.Json.JsonElement
System.Text.Json.JsonElement
System.Text.Json.JsonElement
这里出了什么问题?
没有任何错误。
您将获得Object
元素的数组,但实际元素的类型为JsonElement
。 它继承自Object
。
此外,您不能将\"abcd\"
字符串存储在 memory 的Object
类型区域中。它将是string
或JsonElement
或其他内容。 但是您可以在Object
类型变量中保留对它的引用。 例如foreach (Object _ in data) Console.WriteLine(_.GetType().FullName);
也会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.