繁体   English   中英

System.Text.Json JsonSerializer.反序列化<tvalue> (...) 无法反序列化 object[] 类型</tvalue>

[英]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类型区域中。它将是stringJsonElement或其他内容。 但是您可以在Object类型变量中保留对它的引用。 例如foreach (Object _ in data) Console.WriteLine(_.GetType().FullName); 也会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM