如何正确地将 JArray 解析为字符串集合
Posted
技术标签:
【中文标题】如何正确地将 JArray 解析为字符串集合【英文标题】:How do I properly parse a JArray into a collection of strings 【发布时间】:2021-03-15 03:31:46 【问题描述】:所以我将这个JArray
存储在object
类型的变量中
public object Errors get;
包含这个
Errors = [
"name": [
"Username "admin" has already been taken."
],
"email": [
"Email is not a valid email address."
]
]
或者它会包含这个
Errors = [
"User not found."
]
我希望能够像这样提取数据..email: "Email is not a valid email address."
我不知道该怎么做,这就是我目前所拥有的
foreach (var error in (JArray)Errors)
System.Console.WriteLine($"Type: error.Type");
如何正确提取错误,以便获得包含字符串的集合,例如 kvp 或 email: "Email is not a valid email address."
【问题讨论】:
【参考方案1】:这样的事情怎么样?
static List<string> ExtractErrors(JArray array)
JToken item = array.FirstOrDefault();
if (item.Type == JTokenType.Null)
return new List<string>();
if (item.Type == JTokenType.Object)
return item.Children<JProperty>()
.Select(jp => jp.Name + ": " + (string)jp.Value.FirstOrDefault())
.ToList();
return new List<string> item.ToString() ;
这是一个演示:https://dotnetfiddle.net/md1oyn
【讨论】:
太棒了!如此干净的解决方案,我喜欢你决定使用 LINQ 的方式! 很高兴能帮上忙!以上是关于如何正确地将 JArray 解析为字符串集合的主要内容,如果未能解决你的问题,请参考以下文章