views:

163

answers:

1

I have a class which contains a list of items. I want to serialize an instance of this class to json using the DataContractJsonSerializer as a json array. eg.

class MyClass 
{
    List<MyItem> _items;
}

class MyItem
{
   public string Name {get;set;}
   public string Description {get;set;}
}

When serialized to json it should be like this :

[{"Name":"one","Description":"desc1"},{"Name":"two","Description":"desc2"}]

+1  A: 
[DataContract]
public class MyItem
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public string Description { get; set; }
}

class Program
{
    static void Main()
    {
        var graph = new List<MyItem>
        {
            new MyItem { Name = "one", Description = "desc1" },
            new MyItem { Name = "two", Description = "desc2" }
        };
        var serializer = new DataContractJsonSerializer(graph.GetType());
        serializer.WriteObject(Console.OpenStandardOutput(), graph);
    }
}
Darin Dimitrov
The problem is, List<MyItem> HAS to be member of MyClass, and MyClass should be serialized as array... so graph would be instance if MyClass and the items will be added to this instance
rekna
think I've just found it myself, I can let MyClass inherit from List<MyItem> ...
rekna