gpt4 book ai didi

c# - JSON反序列化为json中缺少键的类[字符串可以是单个字符串或列表字符串]

转载 作者:行者123 更新时间:2023-11-30 17:40:35 25 4
gpt4 key购买 nike

我有下面的课

    [Serializable]
public class filters
{
public List<string> key1 { get; set; }
public List<string> key2 { get; set; }
public List<string> key3 { get; set; }
}

json字符串是

[{"key1": "key1value"}]

反序列化

filters objFilter = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<filters>(json);

json 字符串可以包含 key1、key2 和 key3,也可以不包含。

key1, key2, key3 可以是单个字符串或数组

那么我该如何反序列化呢。

主要是抛出错误。

class is not supported for deserialization of an array

请指教谢谢

最佳答案

你代码的问题是你的json不正确

在控制台应用程序中输入以下代码,看看会得到什么

var filtr = new filters { key1 = new List<string>() { "key1value" } };
var json = new JavaScriptSerializer().Serialize(filtr);
var text = "{\"key1\":[\"key1value\"]}";
filtr = new JavaScriptSerializer().Deserialize<filters>(text);

或者将你的json改成下面的

你的 json 中的 '[]' 表示它是一个数组,所以你正在尝试反序列化一个数组以键入过滤器

{"key1":["key1value"]}

那么你的反序列化应该可以工作了

关于c# - JSON反序列化为json中缺少键的类[字符串可以是单个字符串或列表字符串],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34196893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com