c# - 如何正确地将 JArray 解析为字符串集合
问题描述
所以我把它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."
解决方案
这样的事情怎么样?
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() };
}
推荐阅读
- python - 按字母顺序对 dtype 进行排序
- oracle - 我收到与编码相关的错误
- .htaccess - htaccess 重写 url 以覆盖连字符后的字符
- dictionary - Flutter - 可滚动布局(带地图的表单)
- javascript - 如何为移动设备禁用我的 javascript
- sql - 仅输出行的超集
- angular - 在 Angular 6 中实现区域类型图表 Highcharts
- python - 带有标准输入和标准输出的子进程 Popen --- 总是挂断
- python - How to change background colour of Figure object in Tkinter
- c# - 使用“as”将对象转换为预期类型返回 null