试图反序列化某些结构如下的JSON文件
if..else
我现在想将ABC,DEF,GHI打印到我的调试输出窗口,但是没有任何结果。我的C#代码如下:
public List<ControlTowerCity> GetControlTowerMapData(bool IsHub)
{
if(isHub)
{
using (var context = new LadingControlTowerEntities())
{
var mapcityDetail =
(from SLD in context.ShipmentLocations
join CMD in context.CityMasters on SLD.City equals CMD.ID
select new ControlTowerCity
{
Name = CMD.Name,
}).ToList();
return mapcityDetail;
}
}
else
{
// other part of query with different join
}
}
我在堆栈溢出上尝试了几种不同的解决方案,但均未成功。
答案 0 :(得分:2)
您的课程应该像
public class InputObject
{
public string Input { get; set; }
}
public class InputArray
{
public List<InputObject> Inputs { get; set; }
}
,您应该像下面这样序列化
var items = JsonConvert.DeserializeObject<List<InputArray>>(json);
答案 1 :(得分:2)
仔细查看您的JSON。根是一个数组,由最外面的[]
表示。
在数组内部有一个对象,该对象由您的InputArray
类表示。请注意,这不是您的InputObject
类。
您应该反序列化List<InputArray>
。
var items = JsonConvert.DeserializeObject<List<InputArray>>(json);
然后,您需要使用嵌套循环来遍历项目:
foreach (var inputArray in items) {
foreach (var inputObject in inputArray.Inputs) {
Console.WriteLine(inputObject.Input);
}
}