我从下面粘贴的JSON创建了以下Visual Studio类。
public class Rootobject
{
public Class1[] Property1 { get; set; }
}
public class Class1
{
public string id { get; set; }
public string comments { get; set; }
public DateTime createdDate { get; set; }
public DateTime modifiedDate { get; set; }
public string createdBy { get; set; }
public string modifiedBy { get; set; }
}
- - - - - - - - JSON
[{" id":" 00a17000000LmTOAA0","评论":"这是从代码中添加的评论或注释",& #34; createdDate":" 2015-03-13T15:52:02.000 + 0000"" modifiedDate":" 2015-03-13T15:52:02.000+ 0000"" createdBy":"联系"" modifiedBy":"联系"},{" ID&#34 ;:" 00a17000000LmTTAA0","评论":"这是从代码中添加的评论或注释",#34; createdDate":" 2015-03-13T15:53:19.000 + 0000"" modifiedDate":" 2015-03-13T15:53:19.000 + 0000"" createdBy&#34 ;:"联系"" modifiedBy":"联系"},{" ID":" 00a17000000LmTYAA0",& #34;评论":"这是从代码",#34; createdDate":" 2015-03-13T15:54:29.000 + 0000&#中添加的评论或注释34;," modifiedDate":" 2015-03-13T15:54:29.000 + 0000"" createdBy":"联系",& #34; modifiedBy":"联系"},{" ID":" 00a17000000LmU7AAK""玉米请求":#34;请求者输入的新注释:这是从代码中添加的注释或注释",#34; createdDate":" 2015-03-13T16:39:43.000 + 0000"" modifiedDate":" 2015-03-13T16:39:43.000 + 0000"" createdBy":"联系&#34 ;," modifiedBy":"联系"},{" ID":" 00a17000000LmW3AAK""注释":& #34;从SalesF应用程序添加此评论作为代理"," createdDate":" 2015-03-13T17:37:24.000 + 0000"," modifiedDate&# 34;:" 2015-03-13T17:37:24.000 + 0000"" createdBy":"代理"" modifiedBy":& #34;代理"}]
我正在尝试创建一个对象并执行foreach并获取数据...我不断收到错误无法将JSON数组(例如[1,2,3])反序列化为类型' '因为类型需要JSON对象(例如{“name”:“value”})才能正确反序列化。
我在其他方面尝试过这个:
var jsonResponseNotes = JsonConvert.DeserializeObject<Rootobject>(GetCommentsByID());
任何想法都将非常感谢!!!
答案 0 :(得分:1)
这是您的对象列表。您需要反序列化。你的代码应该是:
var jsonResponseNotes = JsonConvert.DeserializeObject<List<Class1>>(GetCommentsByID());
注意到你的根对象属性是一个数组。不过,我相信数组会反序列化为列表对象。我调整了我的代码。
答案 1 :(得分:1)
你只需要根类:
public class RootObject
{
public string id { get; set; }
public string comments { get; set; }
public string createdDate { get; set; }
public string modifiedDate { get; set; }
public string createdBy { get; set; }
public string modifiedBy { get; set; }
}
然后将其反序列化:
var result = JsonConvert.DeserializeObject<List<RootObject>>(json);