我正在尝试反序列化JavaScript类型的JSON
"{\n \"resultSet1\": [\n {\n \"AgentID\": 13173,\n \"FirstName\": \"Drilon\",\n \"SG_ID\": 14336,\n \"LoginName\": \"UI813926\",\n \"SG_Description\": \"LKC Bauhotline\",\n \"SG_Name\": \"Y_BAU__FO\",\n \"EnterpriseName\": \"LKC_Abdullahu_Drilon\",\n \"LastName\": \"Abdullahu\"\n },\n {\n \"AgentID\": 14432,\n \"FirstName\": \"Pinar\",\n \"SG_ID\": 14336,\n \"LoginName\": \"UI938008\",\n \"SG_Description\": \"LKC Bauhotline\",\n \"SG_Name\": \"Y_BAU__FO\",\n \"EnterpriseName\": \"LKC_Ali_Pinar\",\n \"LastName\": \"Ali\"\n }, ]\n}"
字符串
代理和代理类包括
public class Agent
{
public int AgentID { get; set; }
public string FirstName { get; set; }
public int SG_ID { get; set; }
public string LoginName { get; set; }
public string SG_Description { get; set; }
public string SG_Name { get; set; }
public string EnterpriseName { get; set; }
public string LastName { get; set; }
}
public class Agents : IEnumerable<Agent>
{
public List<Agent> resultSet1 { get; set; }
public IEnumerator<Agent> GetEnumerator()
{
return ((IEnumerable<Agent>)resultSet1).GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable)resultSet1).GetEnumerator();
}
}
型
使用Newtonsoft.json,如下所示:
Agents result = JsonConvert.DeserializeObject<Agents>(responseString);
型
并得到以下错误:
Newtonsoft.Json.JsonSerializationException:'无法反序列化当前JSON对象(例如{“name”:“value”})转换为类型'myclass',因为该类型需要JSON数组(例如[1,2,3])以正确地反序列化。
它可以通过nancy.json库进行反序列化。
Agents AgentsData = new JavaScriptSerializer().Deserialize<Agents>(responseString);
型
2条答案
按热度按时间2nc8po8w1#
Agents
实现了IEnumerable<>
,用JsonObjectAttribute
标记它以强制反序列化为/来自对象:字符串
9rygscc12#
请检查以下几点:
1.确保Agents类具有与json中定义的相同的键。应该和下面的课差不多
字符串
1.你的json也有多个代理ID的数据,请尝试下面的行进行转换:
型