gpt4 book ai didi

c# - 在没有 json.net 的情况下解析 JSON 数组

转载 作者:行者123 更新时间:2023-11-30 22:08:46 25 4
gpt4 key购买 nike

我希望从我的 json 字符串中获取每个“名称”属性和“文本”属性,并将它们添加到各自的列表中。

JSON:

{
"buttons": [
{
"name": "btnTest1",
"text": "Click Me1!"
},
{
"name": "btnTest2",
"text": "Click Me2!"
},
{
"name": "btnTest3",
"text": "Click Me3!"
}
],
"width": 400,
"height": 300
}

当前代码:

List<string> btnName = new List<string>();
List<string> btnText = new List<string>();

public class button
{
public string name { get; set; }
public string text { get; set; }
}

public class Mod
{
public List<button> buttons { get; set; }
public int width { get; set; }
public int height { get; set; }
}

var mod = new JavaScriptSerializer().Deserialize<List<Mod>>(json);

foreach (Mod m in mod)
{
foreach (button b in m.buttons)
{
btnName.Add(b.name);
btnText.Add(b.text);
}
}

但是我的 btnName 和 btnText 列表没有被填充。

我尝试了其他几种不同的解决方案,但都没有成功。

我做错了什么?

(我不想使用 JSON.net 的原因是这个应用程序必须是独立的,没有任何 dll)

最佳答案

根据您的 json,它实际上代表一个 Mod 对象。也就是说,json 序列化程序应该解析/反序列化 Mod 对象而不是 Mod 对象列表,您应该在序列化代码中反射(reflect)该对象结构,如下所示。 .

var mod = new JavaScriptSerializer().Deserialize<Mod>(json);

foreach (button b in mod.buttons)
{
btnName.Add(b.name);
btnText.Add(b.text);
}

关于c# - 在没有 json.net 的情况下解析 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22060805/

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