0
I’m having a little trouble reading a JSON and convert to an Object and display the data on the screen using C#, I’m using the lib Newtonsoft and would like to know how to check if the data type is an array and check if it is empty?
Follow an example of 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 believe I’ve managed to do more I’m not sure if it’s the right way to go 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; }
}
}
What are the arrays you want to check if they are empty?
– Leandro Angelo
@Leandroangelo Hello Leandro so I need to check the array of optionsExtras by or not exist, items also may or may not exist I found some basic examples more does not suit me as the example marked as duplicated above.
– Bruno Richart
include in your question the implementation that most approached the expected result.
– Leandro Angelo
@Leandroangelo I don’t have an implementation yet, but I am with this doubt of how to make the return Perse, a simple examples printing on the console would already help.
– Bruno Richart