【问题标题】:Newtonsoft JSON deserialize and write dataNewtonsoft JSON 反序列化和写入数据
【发布时间】:2015-03-14 05:50:25
【问题描述】:

我从下面粘贴的 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","cmets":"这是从代码中添加的注释或注释","createdDate":"2015-03-13T15:52:02.000+0000","modifiedDate" :"2015-03-13T15:52:02.000+0000","createdBy":"Contact","modifiedBy":"Contact"},{"id":"00a17000000LmTTAA0","cmets":"这是一条评论或从代码中添加的注释","createdDate":"2015-03-13T15:53:19.000+0000","modifiedDate":"2015-03-13T15:53:19.000+0000","createdBy":"Contact" ,"modifiedBy":"Contact"},{"id":"00a17000000LmTYAA0","cmets":"这是从代码中添加的注释或注释","createdDate":"2015-03-13T15:54:29.000+ 0000","modifiedDate":"2015-03-13T15:54:29.000+0000","createdBy":"Contact","modifiedBy":"Contact"},{"id":"00a17000000LmU7AAK","cmets" :"请求者输入的新注释:这是从代码添加的注释或注释","createdDate":"2015-03-13T16:39:43.000+0000","modifiedDate":"2015-03-13T16:39: 43.000+0000","createdBy":"Contact","modifiedBy":"Contact"},{"id":"00a17000000LmW3AAK","cmets":"将此评论从 SalesF 应用添加为代理","createdDate" :“20 15-03-13T17:37:24.000+0000","modifiedDate":"2015-03-13T17:37:24.000+0000","createdBy":"Agent","modifiedBy":"Agent"}]

我正在尝试创建一个对象并执行 foreach 并获取数据...我不断收到错误无法将 JSON 数组(例如 [1,2,3])反序列化为类型“”,因为类型需要 JSON 对象(例如 {“name”:“value”})正确反序列化。

我已经尝试过这个:

var jsonResponseNotes = JsonConvert.DeserializeObject<Rootobject>(GetCommentsByID());

任何想法将不胜感激!!!

【问题讨论】:

    标签: json json.net


    【解决方案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);
    

    【讨论】:

    • @loplateral 我很抱歉,伙计。看看你的赞成票。
    【解决方案2】:

    这是您的对象的列表。您将需要反序列化。你的代码应该是:

    var jsonResponseNotes = JsonConvert.DeserializeObject<List<Class1>>(GetCommentsByID());
    

    编辑

    刚刚注意到您的根对象属性是一个数组。不过,我相信数组会反序列化为列表对象。我已经调整了我的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2021-10-13
      • 2017-10-16
      • 2019-12-20
      • 1970-01-01
      相关资源
      最近更新 更多