开发者

JSON.net problem with JsonConvert.DeserializeObject

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; }
}

//...
La开发者_C百科bels 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


How can JsonConvert know that "seq1" corresponds to name and "1" corresponds to the TorrentsInLabel? Please have a look at JsonObjectAttribute, JsonPropertyAttribute, JsonArrayAttribute


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).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜