C# 反序列化JSON列表

C# 反序列化JSON列表,c#,json,C#,Json,我正在尝试使用Newtonsoft.JSON和C反序列化JSON列表。以下是我的代码: List<Zone> zones = new List<Zone>(); string string = "[ "{\"znId\":19,\"znCode\":\"ZONE_TS_10\",\"znFiltre\":\"(select EMP_I_ID from

我正在尝试使用Newtonsoft.JSON和C反序列化JSON列表。以下是我的代码:

List<Zone> zones = new List<Zone>();
string string = "[
      "{\"znId\":19,\"znCode\":\"ZONE_TS_10\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Zone Test 10 \",\"znPriority\":\"2\"}," +
      "{\"znId\":15,\"znCode\":\"PK_ZONE_TEST06\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 6\",\"znPriority\":\"3\"}," +
      "{\"znId\":20,\"znCode\":\"TS_ZONE_11\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"TS Zone 11\",\"znPriority\":\"3\"}," +
      "{\"znId\":21,\"znCode\":\"11_TS_ZONE\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"11 TS Zone\",\"znPriority\":\"4\"}," +
      "{\"znId\":16,\"znCode\":\"PK_ZONE_TEST07\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 7\",\"znPriority\":\"4\"}," +
      "{\"znId\":17,\"znCode\":\"PK_ZONE_TEST08\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 8\",\"znPriority\":\"5\"}," +
      "{\"znId\":22,\"znCode\":\"PK_ZONE_TEST12\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 12\",\"znPriority\":\"5\"}
]";

zones = JsonConvert.DeserializeObject<List<Zone>>(string);

区域列表显示了7道主菜。字符串的每个区域一个。但是所有的元素都是空的。我在做什么?

首先公开属性,然后更正json。开头有额外的引号。以下是正确的版本:

            List<Zone> zones = new List<Zone>();
            string @string = "[{\"znId\":19,\"znCode\":\"ZONE_TS_10\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Zone Test 10 \",\"znPriority\":\"2\"}," +
                "{\"znId\":15,\"znCode\":\"PK_ZONE_TEST06\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 6\",\"znPriority\":\"3\"}," +
                "{\"znId\":20,\"znCode\":\"TS_ZONE_11\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"TS Zone 11\",\"znPriority\":\"3\"}," +
                "{\"znId\":21,\"znCode\":\"11_TS_ZONE\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"11 TS Zone\",\"znPriority\":\"4\"}," +
                "{\"znId\":16,\"znCode\":\"PK_ZONE_TEST07\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 7\",\"znPriority\":\"4\"}," +
                "{\"znId\":17,\"znCode\":\"PK_ZONE_TEST08\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 8\",\"znPriority\":\"5\"}," +
                "{\"znId\":22,\"znCode\":\"PK_ZONE_TEST12\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 12\",\"znPriority\":\"5\"}]";

            zones = JsonConvert.DeserializeObject<List<Zone>>(@string);

首先,将属性公开,然后更正json。开头有额外的引号。以下是正确的版本:

            List<Zone> zones = new List<Zone>();
            string @string = "[{\"znId\":19,\"znCode\":\"ZONE_TS_10\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Zone Test 10 \",\"znPriority\":\"2\"}," +
                "{\"znId\":15,\"znCode\":\"PK_ZONE_TEST06\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 6\",\"znPriority\":\"3\"}," +
                "{\"znId\":20,\"znCode\":\"TS_ZONE_11\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"TS Zone 11\",\"znPriority\":\"3\"}," +
                "{\"znId\":21,\"znCode\":\"11_TS_ZONE\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"11 TS Zone\",\"znPriority\":\"4\"}," +
                "{\"znId\":16,\"znCode\":\"PK_ZONE_TEST07\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 7\",\"znPriority\":\"4\"}," +
                "{\"znId\":17,\"znCode\":\"PK_ZONE_TEST08\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 8\",\"znPriority\":\"5\"}," +
                "{\"znId\":22,\"znCode\":\"PK_ZONE_TEST12\",\"znFiltre\":\"(select EMP_I_ID from V_ZON_SITE)\",\"znDescription\":\"Test 12\",\"znPriority\":\"5\"}]";

            zones = JsonConvert.DeserializeObject<List<Zone>>(@string);
将您的属性公开,以便在本例中可以在classNewtonSoft之外访问

public class Zone 
{
    public int znId { get; set; }
    public String znCode { get; set; }
    public String znFiltre { get; set; }
    public String znDescription { get; set; }
    public String znPriority { get; set; } 
}
将您的属性公开,以便在本例中可以在classNewtonSoft之外访问

public class Zone 
{
    public int znId { get; set; }
    public String znCode { get; set; }
    public String znFiltre { get; set; }
    public String znDescription { get; set; }
    public String znPriority { get; set; } 
}

尝试将属性公开。为什么它们是私人的?试着把它们公之于众。为什么是私人的?