【问题标题】:Add array to a list of objects将数组添加到对象列表
【发布时间】:2013-09-03 06:57:50
【问题描述】:

这是创建我的 json 对象的类

    public class RootObject
    {
        public string name { get; set; }
        public string id { get; set; }
        public string school { get; set; }
        public List<object> details{ get; set; }
    }

这就是我创建新对象的方式

        var obj = new RootObject();
        obj.name= "test";
        obj.id = "null";
        obj.school = "something else";

然后我使用 JavaScriptSerializer 序列化对象(这工作正常) 我需要将一个数组添加到这个对象“详细信息”列表中以获得如下内容:

{
  "name ":"test",
  "id":null,
  "school ":"something else",
  "details":["details1","detail2"]
}

我尝试逐个添加字符串或元素,但没有成功。我该如何解决这个问题?

【问题讨论】:

  • 你尝试了什么?发生了什么?
  • 你在初始化列表吗?
  • 您遇到了什么问题?创建列表?让列表被序列化?反序列化列表?

标签: c# arrays json object serialization


【解决方案1】:

你需要初始化List:

obj.details = new List<object>();

然后添加数据:

obj.details.Add("Details1");
obj.details.Add("Details2");

【讨论】:

  • 就是这样!我完全忘了初始化它...有时会发生,谢谢!
【解决方案2】:

我强烈建议你只使用 Json.NET:

obj.details = new List<object>
{
    "details1", "details2"
};

然后,JsonConvert.SerializeObject(obj, Formatting.Indented) 给出:

{
  "name": "test",
  "id": "null",
  "school": "something else",
  "details": [
    "details1",
    "details2"
  ]
}

【讨论】:

  • 我以前检查过这个,但我认为我现在不需要 Json.NET,但这也可以!谢谢
猜你喜欢
  • 2012-08-02
  • 2011-12-05
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2012-10-30
  • 2013-11-23
相关资源
最近更新 更多