代码之家  ›  专栏  ›  技术社区  ›  Justinus Hermawan

System.Text.Json文件JsonSerializer.反序列化<TValue>(…)无法反序列化对象[]类型

  •  0
  • Justinus Hermawan  · 技术社区  · 4 年前

    JSON 字符串值作为 object[] System.Text.Json.JsonElement[] 类型。

    var data = JsonSerializer.Deserialize<object[]>("[\"abcd\",\"efgh\",\"ijkl\",\"mnop\"]", null);
    foreach (var _ in data) Console.WriteLine(_.GetType().FullName);
    

    预期产量:

    System.Object
    System.Object
    System.Object
    System.Object
    

    实际产量:

    System.Text.Json.JsonElement
    System.Text.Json.JsonElement
    System.Text.Json.JsonElement
    System.Text.Json.JsonElement
    

    这里怎么了?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Vyacheslav Benedichuk    4 年前

    没什么不对的。

    你得到的是 Object 元素,但实际元素的类型为 JsonElement 对象

    而且,你不能储存 \"abcd\" 字符串 键入的内存区域。会的 string JsonElement公司 对象 例如 foreach (Object _ in data) Console.WriteLine(_.GetType().FullName); 也会起作用。