反序列化JSON文件,没有输出出现

时间:2018-12-04 07:57:41

标签: c# json parsing debugging deserialization

试图反序列化某些结构如下的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
      }
    }

我在堆栈溢出上尝试了几种不同的解决方案,但均未成功。

2 个答案:

答案 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);
        }
    }