【发布时间】:2020-08-25 22:58:08
【问题描述】:
首先感谢您花时间看这个。这是相当多的。 问题: 我基本上是在尝试将 json 作为字符串下载,然后将其反序列化为列表。原因是我可以调用该列表的特定属性(在我的情况下为“ips”,因为它是我真正需要的)并在满足要求时将其插入表中。 问题在于它将所有空值移动到数组中。 114 列 null 或空数组,我不知道为什么? 我想我会附上一个指向 JSON 的链接,因为它是一个巨大的文件,它在这里 https://endpoints.office.com/endpoints/Worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7
这是我的代码:
- JSON 的获取器和设置器
public class GetSetJsonIP { [JsonProperty("id")] public int id { get; set; } [JsonProperty("serviceArea")] public string ServiceArea { get; set; } [JsonProperty("serviceAreaDisplayName")] public string ServiceAreaDisplayName { get; set; } [JsonProperty("urls")] public IList<string> urls { get; set; } [JsonProperty("ips")] public IList<string> ips { get; set; } [JsonProperty("tcpPorts")] public string tcpPorts { get; set; } [JsonProperty("expressRoute")] public bool expressRoute { get; set; } [JsonProperty("category")] public string category { get; set; } [JsonProperty("required")] public bool required { get; set; } [JsonProperty("notes")] public string notes { get; set; } [JsonProperty("udpPorts")] public string udpPorts { get; set; } } - 列表类
public class ConvertJsonIP{
public List<GetSetJsonIP> jsonIpConvert { get; set; }
public List<GetSetJsonIP> jsonIPConvert = new List<GetSetJsonIP>();
}
3.我使用名为 o365IP 的空字符串下载 JSON
o365IP = wc.DownloadString(wc.BaseAddress + "/endpoints/Worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7");
- 我使用我的 List 反序列化到一个单独的 var
var o365IpVerion = JsonConvert.DeserializeObject<List<ConvertJsonIP>>(o365IP);
此代码没有显示错误。所以我只能假设它对我来说是合乎逻辑的。应该注意的是,我必须将 说真的,我已经坚持了 3 天,因此我们将不胜感激任何帮助!提前致谢!
【问题讨论】:
-
如果有人无法访问链接,我将发布整个 JSON。只是不想让任何经历大约 600 行 JSON 的人蒙蔽。另外,如果有人知道一种只获取 JSON 一部分的方法,例如就我而言,我只想要 id: 1 的值,包括 url 和 ip,我会非常棒的
-
1 号的班级名称是什么。
-
@Jawad 抱歉一定错过了.. 名字是'GetSetJsonIP'
-
@Jawad,第 2 类的名称是 'ConvertJsonIP'
标签: c# json list null converters