如何在 C# 中验证 JSON 对象中列表的条件
Posted
技术标签:
【中文标题】如何在 C# 中验证 JSON 对象中列表的条件【英文标题】:how to valilidate a condtion for list in JSON object in C# 【发布时间】:2020-09-23 19:53:28 【问题描述】:我有一个 JSON 文件,我必须在其中执行基于 json 元素的数据验证。
下面是我的json文件
[
"id": "5241585099662481339",
"displayName": "Music",
"name": "music",
"slug": "music",
"imageUrl": "http://mno.com"
,
"id": "6953585193220490118",
"displayName": "Celebrities",
"name": "celebrities",
"slug": "celebrities",
"imageUrl": "http://ijk.com"
,
"id": "5757029936226020304",
"displayName": "Entertainment",
"name": "entertainment",
"slug": "entertainment",
"imageUrl": "http://pqr.com"
,
"id": "3718",
"displayName": "Saturday Night Live",
"name": "saturday night live",
"slug": "saturday-night-live",
"imageUrl": "http://efg.com"
,
"id": "8113008320053776960",
"displayName": "Hollywood",
"name": "hollywood",
"slug": "hollywood",
"imageUrl": "http://qwe.com"
]
下面是代码sn-p
var list = JsonConvert.DeserializeObject<List<MyItem>>(json);
if (list.Any(e => e.id =="3718"))
//How do get the exact displayName on the if condtion
public class MyItem
public string id;
public string displayName;
public string name;
public string slug;
public string imageUrl;
这里我想要基于 if 条件通过的 displayname 值。所以在我的 if 循环中 if put list.displayname 我需要将值打印为 Saturday Night Live
【问题讨论】:
【参考方案1】:// name will be null if there isn't any item where id == 3718
var name = list.FirstOrDefault(item => string.Equals(item.id, "3718"))?.displayName;
// InvalidOperationException will be thrown if there isn't any item where id == 3718
var name = list.First(item => string.Equals(item.id, "3718")).displayName;
【讨论】:
【参考方案2】:检查一下:
var name = list.Where(e=>e.id=="3718").Select(x=>x.displayName);
【讨论】:
以上是关于如何在 C# 中验证 JSON 对象中列表的条件的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 c# 根据来自 json 的 json 元素属性值验证数据条件
在 C# 中,如何为具有多个嵌套数组的 JSON 对象建模?