gpt4 book ai didi

c# - 使用包含奇怪变量的数据使用 JSON.NET 反序列化 JSON

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

我正在接收一些 json 格式的数据(我无法控制数据的呈现方式)。

可以使用 JSON.NET 库中的 JsonConvert.DeserializeObject 方法反序列化吗?

"{'episodes':{'1':true,'2':true,'3':true,'4':true,'5':true,'6':true,'7':true,'8':true,'9':true,'10':true,'11':true,'12':true,'13':true,'14':true,'15':true,'16':true,'17':true,'18':true,'19':true,'20':true,'21':true,'22':true,'23':true,'24':true}}"

我的意思是,我不能做这样的事情:

public class Episodes {
public bool 1;
public bool 2;
public bool 3;
...
}

此外,这不起作用:

public class Episode
{
[JsonProperty("1")]
public bool One { get; set; }
[JsonProperty("2")]
public bool Two { get; set; }
[JsonProperty("3")]
public bool Three { get; set; }
[JsonProperty("4")]
public bool Four { get; set; }
[JsonProperty("5")]
public bool Five { get; set; }
[JsonProperty("6")]
public bool Six { get; set; }
[JsonProperty("7")]
public bool Seven { get; set; }
[JsonProperty("8")]
public bool Eight { get; set; }
[JsonProperty("9")]
public bool Nine { get; set; }
[JsonProperty("10")]
public bool Ten { get; set; }
[JsonProperty("11")]
public bool Eleven { get; set; }
[JsonProperty("12")]
public bool Twelve { get; set; }
[JsonProperty("13")]
public bool Thirteen { get; set; }
...
}
var result = JsonConvert.DeserializeObject<Episode>(json); // Every property is False

有什么明显我没有得到这里吗?我设法反序列化了大部分我必须反序列化的 json,但是这个,我似乎无法弄清楚。

非常感谢,如果这是一个愚蠢的问题,我们深表歉意!

最佳答案

如果您正确定义类,则可以使用 Json.Net 轻松反序列化。

像这样定义你的类:

class Wrapper
{
public Dictionary<int, bool> Episodes { get; set; }
}

然后,像这样反序列化(其中 json 是您问题中的 JSON 字符串):

Wrapper wrapper = JsonConvert.DeserializeObject<Wrapper>(json);

然后您可以在 Wrapper 中访问 Episodes 字典中的数据:

foreach (KeyValuePair<int, bool> kvp in wrapper.Episodes)
{
Console.WriteLine(kvp.Key + " - " + kvp.Value);
}

关于c# - 使用包含奇怪变量的数据使用 JSON.NET 反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20365179/

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