2

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"}]

dbc
  • 104,963
  • 20
  • 228
  • 340
rekna
  • 5,313
  • 7
  • 45
  • 54

1 Answers1

6
[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
  • 1,023,142
  • 271
  • 3,287
  • 2,928
  • The problem is, List 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 May 16 '10 at 16:37