如何序列化ArrayList json

时间:2014-03-08 23:54:58

标签: c# json arraylist

所以这是我的对象类:

public class personSerialize
{
    public string[] name { get; set; }
    public int number { get; set; }
};

对象创建代码是:

personSerialize personObject = new personSerialize()
{
    name = people, //'people' is an ArrayList BTW
    number = peopleNum
};

它返回一个错误:

无法将类型'System.Collections.ArrayList'隐式转换为'string []'

我知道'[]'不是ArrayList,但我不知道还能说些什么。感谢

2 个答案:

答案 0 :(得分:1)

正如您可以在错误中看到的那样,您必须将ArrayList转换为这样的数组:

name = (string[]) people.ToArray( typeof(string) );

答案 1 :(得分:0)

您无法将ArrayList分配给String[]数组。 您需要先将ArrayList转换为Array,然后将结果转换为string[]数组,因为ArrayList包含objects不是字符串的集合。

试试这个:

name = (string[]) people.ToArray()

建议:我们过去常常使用ArrayList而不是type safe,因为它的内容只能在运行时知道。

您可以在此处使用GenericCollections (typesafe)来避免运行时异常。 您可以使用以下命名空间

导入通用集合

using System.Collections.Generic;

然后您可以使用List<T>代替ArrayList

注意:在使用List<T>之前,您需要先提及类型。因此它是类型安全的并且可以避免运行时异常。

你可以使用List asbelow:

List<string> list=new List<string>();
list.Add("mystring1");
list.Add("mystring2");
list.Add("mystring3");