Json format on return

Asked

Viewed 379 times

3

I need to pass a json with the following format:

{rows:[
    { 
     data:[
       "1",
       "Nome teste",
       "Descricao teste"]
}]}

But when using my jsonresult action, I don’t know how to return this way

 public JsonResult Data()
    {
      var grupos= grupoService.BuscaTodos();

      return Json(new
      {
        rows = new
        {
          data = grupos
        }
      }, JsonRequestBehavior.AllowGet);
    }

he ends up returning like this:

{"rows":{
      "data":[{
             "Nome":"nome",
              "Descricao":"descricao",
              "Id":110,
              "DataCadastro":null}]
}}

Someone can tell me what I need to do?

Blue is how I want it, red is how it’s coming

inserir a descrição da imagem aqui

  • You wanted the id to stay off the date?

  • ignore id, rsrs,I would like it to be exactly this way, without the use of "Property":"value",

2 answers

4


Basically to its layout would be like this:

return Json(new
        {
            rows = new object[] {
                new {
                    data = new string[]
                    {
                        "1", "NomeTeste", "Descricao Teste"
                    }
                }
            }
        }, JsonRequestBehavior.AllowGet);

If it’s a list for example:

var dados = new object[] 
{
    new object[] {"1", "NomeTeste 1", "Descricao Teste 1" },
    new object[] {"2", "NomeTeste 2", "Descricao Teste 2" }
};

return Json(new
{
    rows = new object[] {
        new {
            data =  dados
        }
    }
}, JsonRequestBehavior.AllowGet);

Classy:

public class Exemplo
{
    public int Id { get; set; }
    public String Nome { get; set; }
    public String Descricao { get; set; }
    public DateTime? DataCadatro { get; set; }
}   

IList<Exemplo> dados = new List<Exemplo>();
dados.Add(new Exemplo()
{
    Id = 1,
    Nome = "NomeTeste 1",
    Descricao = "Descricao 1"
});
dados.Add(new Exemplo()
{
    Id = 2,
    Nome = "NomeTeste 2",
    Descricao = "Descricao 2"
}); 

return Json(new
    {
        rows = new object[] {
            new {
                data =  dados.Select(x => new object[]{
                    x.Id.ToString(), x.Nome.ToString(), x.Descricao.ToString()
                })
            }
        }
    }, JsonRequestBehavior.AllowGet);

inserir a descrição da imagem aqui

Forcing only the first list item:

return Json(new
    {
        rows = new object[] {
            new {
                data =  dados.Select(x => new object[]{
                    x.Id, x.Nome.ToString(), x.Descricao.ToString()
                })
                .FirstOrDefault()
            }
        }
    }, JsonRequestBehavior.AllowGet);

inserir a descrição da imagem aqui

With the New Edition made the layout clearer:

IList<Exemplo> dados = new List<Exemplo>();
dados.Add(new Exemplo()
{
    Id = 1,
    Nome = "NomeTeste 1",
    Descricao = "Descricao 1"
});
dados.Add(new Exemplo()
{
    Id = 2,
    Nome = "NomeTeste 2",
    Descricao = "Descricao 2"
});

return Json(new
{
    rows = dados.Select(x => new 
            {
                x.Id, 
                Data = new object[] { 
                    x.Id, x.Nome.ToString(), x.Descricao.ToString()
                }                            
            })                                    
}, JsonRequestBehavior.AllowGet);

inserir a descrição da imagem aqui

  • 1

    Exactly what I wanted, thank you! really!

0

Try this:

    public JsonResult Data()
    {
        var grupos = grupoService.BuscaTodos().Select(data => new
        {
            data.Id,
            data.Nome,
            data.Descricao
        });
        return Json(new
        {
            rows = new
            {
                data = grupos
            }
        }, JsonRequestBehavior.AllowGet);
    }
  • nothing =/ I’m seeing the format it comes in in this Reset here: http://jsonviewer.stack.hu, but it’s almost that, =s

  • In this my example it returns as?

  • {"Rows":{"date":[{"Id":110,"Name":"name","Description":"Description"}]}}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.