JSON.net problem with JsonConvert.DeserializeObject

c#, json, json.net, serialization

Solution

By default a class serializes to a JSON object where the properties on the class become properties on the JSON object.

{
    Name: "seq",
    TorrentsInLabel: 1
}

You are trying to serialize it to an array which isn't how the Json.NET serializer works by default.

To get what you want you should create a JsonConverter and read and write the JSON for Label manually to be what you want it to be (an array).

Problem

I have the following code and json: ``` public class Labels { public Labels() {} public Label[] Label {get;set;} } public class Label { public Label() { } public string Name { get; set; } public int TorrentsInLabel { get; set; } } //... Labels o = JsonConvert.DeserializeObject<Labels>(json); //... {"label": [ ["seq1",1] ,["seq2",2] ]} ``` I would like this array ["seq1","1"] to deserialize into Label object. What am I missing? Some attributes? When I run I get exception: Expected a JsonArrayContract for type 'test_JSONNET.Label', got 'Newtonsoft.Json.Serialization.JsonObjectContract'. tnx gg

Original source