How to convert a json return into a C # object to display the result on the [duplicate]

0

I'm having a problem while reading a JSON and convert to an Object and display the data on the screen using C # , I'm using the Newtonsoft and would like to know how to check if the data type is an array and check if it is empty?

Here is an example of a return below:

  [
        {
          "id": 1,
          "nome": "sample string 2",
          "descricao": "sample string 3",
          "disponivel": true,
          "preco": 5.1,
          "foto": "QEA=",
          "opcoesExtras": [
            {
              "id": 1,
              "nome": "sample string 3",
              "calculoTipo": 0,
              "maximoExtras": 4,
              "itens": [
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                },
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                }
              ]
            },
            {
              "id": 1,
              "nome": "sample string 3",
              "calculoTipo": 0,
              "maximoExtras": 4,
              "itens": [
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                },
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                }
              ]
            }
          ],
          "categoriaId": 6,
          "categoria": {
            "id": 1,
            "nome": "sample string 2",
            "produtos": []
          }
        },
        {
          "id": 1,
          "nome": "sample string 2",
          "descricao": "sample string 3",
          "disponivel": true,
          "preco": 5.1,
          "foto": "QEA=",
          "opcoesExtras": [
            {
              "id": 1,
              "nome": "sample string 3",
              "calculoTipo": 0,
              "maximoExtras": 4,
              "itens": [
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                },
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                }
              ]
            },
            {
              "id": 1,
              "nome": "sample string 3",
              "calculoTipo": 0,
              "maximoExtras": 4,
              "itens": [
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                },
                {
                  "id": 1,
                  "nome": "sample string 3",
                  "valor": 4
                }
              ]
            }
          ],
          "categoriaId": 6,
          "categoria": {
            "id": 1,
            "nome": "sample string 2",
            "produtos": []
          }
        }
      ]

I think I could do more, I'm not sure if it's the correct way below:

 using System;
    using System.Collections.Generic;
    using Newtonsoft.Json;

    namespace ParseApp
    {
        class MainClass
        {
            public static void Main(string[] args)
            {
                string json = @"[{'descricao': 'sample string 3', 'categoriaId': 6, 'foto': 'QEA=', 'preco': 5.1, 'id': 1, 'opcoesExtras': [{'id': 1, 'itens': [{'id': 1, 'valor': 4, 'nome': 'sample string 3'}, {'id': 1, 'valor': 4, 'nome': 'sample string 3'}], 'calculoTipo': 0, 'maximoExtras': 4, 'nome': 'sample string 3'}, {'id': 1, 'itens': [{'id': 1, 'valor': 4, 'nome': 'sample string 3'}, {'id': 1, 'valor': 4, 'nome': 'sample string 3'}], 'calculoTipo': 0, 'maximoExtras': 4, 'nome': 'sample string 3'}], 'nome': 'sample string 2', 'categoria': {'id': 1, 'produtos': [], 'nome': 'sample string 2'}, 'disponivel': true}, {'descricao': 'sample string 3', 'categoriaId': 6, 'foto': 'QEA=', 'preco': 5.1, 'id': 1, 'opcoesExtras': [{'id': 1, 'itens': [{'id': 1, 'valor': 4, 'nome': 'sample string 3'}, {'id': 1, 'valor': 4, 'nome': 'sample string 3'}], 'calculoTipo': 0, 'maximoExtras': 4, 'nome': 'sample string 3'}, {'id': 1, 'itens': [{'id': 1, 'valor': 4, 'nome': 'sample string 3'}, {'id': 1, 'valor': 4, 'nome': 'sample string 3'}], 'calculoTipo': 0, 'maximoExtras': 4, 'nome': 'sample string 3'}], 'nome': 'sample string 2', 'categoria': {'id': 1, 'produtos': [], 'nome': 'sample string 2'}, 'disponivel': true}]";


                List<Example> ex = JsonConvert.DeserializeObject<List<Example>>(json);

                foreach (Example item in ex){
                    Console.WriteLine("Produto id: {0}", item.id);
                    Console.WriteLine("Produto nome: {0}",item.nome);
                    Console.WriteLine("Produto descrição: {0}",item.descricao);
                    Console.WriteLine("Produto Preço: {0}",item.preco);
                    Console.WriteLine("Produto Foto: {0}",item.foto);
                    //Ler Opções extras
                    if (item.opcoesExtras.Count > 0)
                    {
                        foreach (OpcoesExtra o in item.opcoesExtras)
                        {
                            Console.WriteLine(" - OpcoesExtra id: {0}", o.id);
                            Console.WriteLine(" - OpcoesExtra nome: {0}", o.nome);
                            Console.WriteLine(" - OpcoesExtra Maximo Extras: {0}", o.maximoExtras);
                            if (o.itens.Count > 0)
                            {
                                foreach (Iten i in o.itens)
                                {
                                    Console.WriteLine(" - - item id: {0}", i.id);
                                    Console.WriteLine(" - - item Valor: {0}", i.valor);
                                    Console.WriteLine(" - - item nome: {0}", i.nome);
                                }
                            }

                        }
                    }

                    Console.WriteLine("-----------------------------------------------------------------------------");
                }         
            }
        }
        //Classes aqui 
        public class Iten
        {
            public int id { get; set; }
            public string nome { get; set; }
            public int valor { get; set; }
        }

        public class OpcoesExtra
        {
            public int id { get; set; }
            public string nome { get; set; }
            public int calculoTipo { get; set; }
            public int maximoExtras { get; set; }
            public IList<Iten> itens { get; set; }
        }

        public class Categoria
        {
            public int id { get; set; }
            public string nome { get; set; }
            public IList<object> produtos { get; set; }
        }

        public class Example
        {
            public int id { get; set; }
            public string nome { get; set; }
            public string descricao { get; set; }
            public bool disponivel { get; set; }
            public double preco { get; set; }
            public string foto { get; set; }
            public IList<OpcoesExtra> opcoesExtras { get; set; }
            public int categoriaId { get; set; }
            public Categoria categoria { get; set; }
        }
    }
    
asked by anonymous 15.05.2018 / 02:20

0 answers