gpt4 book ai didi

C# 在线从 JSON 填充组合框

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:34 25 4
gpt4 key购买 nike

我需要从 JSON 在线填充组合框。它是一个 WindowsForms 项目,在 C# 中。 PHP 页面返回以下字符串:

[{"user_id":"1","first_name":"Joao","last_name":"Silva"},{"user_id":"2","first_name":"Maria","last_name":"Santos"},{"user_id":"3","first_name":"Rosa","last_name":"Costa"}]

user_id 是组合框 ID,first_name + last_name 是文本。我尝试了很多方法,但没有一个工作得很好。有什么建议吗?

我的一个尝试:

public class User
{
public int user_id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
}

public class LegendsUsers
{
public int user_id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
}

public class RootObject
{
public List<User> Users { get; set; }
public List<LegendsUsers> LegendsUsers { get; set; }
}

public class ComboboxItem
{
public string Text { get; set; }
public object Value { get; set; }

public override string ToString()
{
return Text;
}
}

String resposta = new
WebClient().DownloadString("http://www.sample.com/readjson.php");
var x = JsonConvert.DeserializeObject<RootObject>(resposta);
foreach (var user in x.Users)
{
ComboboxItem item = new ComboboxItem();
item.Text = user.first_name + " " + user.last_name;
item.Value = user.user_id;
comboBox1.Items.Add(item);
}

错误:

Newtonsoft.Json.JsonSerializationException:无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“NB_WBF_Demo.NB_WBF_Demo+RootObject”,因为该类型需要一个 JSON 对象(例如 {"name":"value "}) 正确反序列化。要修复此错误,要么将 JSON 更改为 JSON 对象(例如 {"name":"value"}),要么将反序列化类型更改为数组或实现集合接口(interface)(例如 ICollection、IList)的类型,例如 List从 JSON 数组反序列化。 JsonArrayAttribute 也可以添加到类型以强制它从 JSON 数组反序列化。路径 '',第 1 行,位置 1。

最佳答案

由于你的json是数组/List,不是对象,所以你的反序列化代码应该是这样的

public class RootObject
{
public string user_id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
}

var x = JsonConvert.DeserializeObject<List<RootObject>>(resposta);
foreach (var user in x)
{
.....
}

关于C# 在线从 JSON 填充组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747239/

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