请问,如何在C#中写下这个json的Foreach
:
{ "tabla": [
{
"nombretabla": "TABLE1",
"campostabla": {
"campo": [
"FIELD1",
"FIELD2"
]
},
"filtro": "FIELD1=100"
},
{
"nombretabla": "TABLE2",
"campostabla": {
"campo": [
"FIELD1",
"FIELD2",
"FIELD3"
]
},
"filtro": "FIELD2=200"
}
] }
表示每个tabla
元素的提取值,并在campo
元素上提取值,以便在单独的列表中获得最终结果:
新列表1(tabla
= TABLE1
的值):
FIELD1
FIELD2
新列表2(tabla
= TABLE2
的值):
FIELD1
FIELD2
FIELD3
感谢。
答案 0 :(得分:1)
这是一个粗略的例子,它使用Newtonsoft.Json
nuget包,你可以从中工作并使用它作为灵感。它按表名分组,然后获取每个名称的列表。你可能想要以不同的方式做我不确定的事。
var o = JsonConvert.DeserializeObject<root>(json);
var groups = o.tabla.GroupBy(t => t.nombretabla);
foreach (var group in groups)
{
var tableName = group.Key;
var tabla = group.FirstOrDefault();
if (tabla != null)
{
var list = tabla.campostabla.campo.ToList();
foreach (var item in list)
{
Console.WriteLine(item);
}
}
}
您应根据需要更改的锅炉类......
public class root
{
public Tabla[] tabla { get; set; }
}
public class Tabla
{
public string nombretabla { get; set; }
public CamposTabla campostabla { get; set; }
public string filtro { get; set; }
}
public class CamposTabla
{
public string[] campo { get; set; }
}