none
Deserialização de json RRS feed

  • Pergunta

  • Como faço para deserializar um json no formato abaixo, pois não consigo criar uma classe com atributos contendo hífen no nome para isso.

    {"data": [
       {"price-precision":6,
        "amount-precision":4
        }]
    }

    public class A
    {
       public string price-precision;
       public string amount-precision;
    }


    A a = JsonConvert.DeserializeObject<A>(json);


    quinta-feira, 5 de dezembro de 2019 01:00

Todas as Respostas

  • Em "atributos" leia-se "propriedades"
    quinta-feira, 5 de dezembro de 2019 01:04
  • Ibzzi,
    Sugiro duas opções:
    Primeiro você pode fazer conforme abaixo, que seria uma POG:
    {"data": [
       {"price-precision":6,
        "amount-precision":4
        }]
    }

    public class A
    {
       public string priceprecision;
       public string amountprecision;
    }

    A a = JsonConvert.DeserializeObject<A>(json.Replace("-", string.Empty));

    Essa opção você usa o REPLACE para remover o traço.

    A segunda opção:

    Acesse o site http://json2csharp.com/
    Cole o JSON e faça a conversão para gerar a classe em CSharp conforme abaixo:

    public class Datum
    {
        public int __invalid_name__price-precision { get; set; }
        public int __invalid_name__amount-precision { get; set; }
    }
    
    public class RootObject
    {
        public List<Datum> data { get; set; }
    }

    Não cheguei testar, mas ficaria dessa forma a classe.

    Espero ter ajudado.

    sexta-feira, 6 de dezembro de 2019 12:11