Pergunta

Eu tenho o seguinte código e 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]
]}

Eu gostaria dessa matriz ["seq1", "1"] para deseralizar no objeto de etiquetas. o que estou perdendo? Alguns atributos?

Quando corro, recebo exceção: esperava um jsonArrayContract para o tipo 'test_jsonnet.label', obteve 'newtonsoft.json.serialization.jsonObjectContract'.

tnx

gg

Foi útil?

Solução

Por padrão, uma classe serializa para um objeto JSON, onde as propriedades da classe se tornam propriedades no objeto JSON.

{
    Name: "seq",
    TorrentsInLabel: 1
}

Você está tentando serializar em uma matriz, que não é como o serializador do JSON.NET funciona por padrão.

Para obter o que quiser, você deve criar um JSONCONVERTER, ler e escrever o JSON for Label manualmente para ser o que você deseja (uma matriz).

Outras dicas

Como o JSONCONCORT SABE que "SEQ1" corresponde ao nome e "1" corresponde ao torrentsInlabel? Por favor, dê uma olhada no JsonObjectAttribute, JSONPROPTYATTIBRIPTIVE, JSONARRAYATTRIBUTO

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top