c# - 在 C# 中显示来自 JSON 的所有名称列表
问题描述
我对 C# 很陌生,也许这很容易解决,但我已经阅读了很多小时,我似乎无法弄清楚如何让它工作。
我想从 url 中检索 JSON 文件,并在完整列表中显示文件中的所有“名称”。
我试图从中获取名称的 Json 如下所示:
[{
"endpoint":"127.0.0.1",
"id":2,
"identifiers":"steam:1",
"license:1",
"xbl:2533274989967058",
"live:1","discord:1"],
"name":"Name1",
"ping":7
},
{
"endpoint":"127.0.0.1",
"id":3,
"identifiers":"steam:2",
"license:2",
"discord:2",
"fivem:2"],
"name":"Name2",
"ping":26
},
{
"endpoint":"127.0.0.1",
"id":5,
"identifiers":["steam:3","license:3","discord:3"],
"name":"Name3",
"ping":34
}
]
我的 RootObject(来自http://json2csharp.com/):
public class RootObject
{
public string endpoint { get; set; }
public int id { get; set; }
public List<string> identifiers { get; set; }
public string name { get; set; }
public int ping { get; set; }
}
和代码本身:
WebClient client1 = new WebClient();
string strPageCode = client1.DownloadString("http://127.0.0.1:30120/players.json");
List<RootObject> list = JsonConvert.DeserializeObject<List<RootObject>>(strPageCode);
try
{
MessageBox.Show(string.Join("\n", list), "Playerlist");
}
catch (ArgumentOutOfRangeException)
{
MessageBox.Show("No players online","Playerlist");
}
我尝试了很多不同的方法,到目前为止,我已经得到它来显示名称的数量,但它显示如下:
我尽可能地描述它,英语不是我的母语,所以如果它没有意义,请告诉我,我会尝试改写它。
解决方案
您实际上是在尝试显示具有低意义的对象(具有许多属性的对象)
您可以使用循环并使用以下内容构建字符串:
var sb = new StringBuilder();
foreach (var obj in list)
{
sb.AppendLine(obj.name);
}
MessageBox.Show(sb.ToString(), "Playerlist");
或者将方法覆盖ToString()
到您的类并让您的代码保持原样:
public class RootObject
{
public string endpoint { get; set; }
public int id { get; set; }
public List<string> identifiers { get; set; }
public string name { get; set; }
public int ping { get; set; }
public override string ToString()
{
return name;
}
}
推荐阅读
- flutter - 如何在文本小部件上添加一个像线条一样的主题中断?
- python - 计算测量点和目标线之间的距离
- ubuntu - Jenkins:Ubuntu 16.04:Headless Chrome 无法启动:异常退出
- python - 将 2 个图像转换为 numpy 数组并逐像素比较
- javascript - 如何更改jQuery对象中对象类型的无序列表的ID
- java - 递归回溯仅适用于小输入。较大的输入会导致 stackOverFlow
- python - 获取不等于计数函数参数的变量的最佳方法?
- image - 如何通过放大、反应原生应用程序将 base64 图像上传到 S3
- java - Java- 使用 For 循环和用户输入填充二维数组
- java - Java 错误地将 UrlEncode \r 编码为 %5cr 而不是 %0D?