Asp .Net - JavaScriptSerializer: JSON em C#

JavaScriptSerializer é uma classe responsável por serialização de outras classes para a linguagem que o javascript entende, JSON. Esta é a mesma utilizada internamente pela camada de comunicação assíncrona do Asp .Net para serializar e desserializar os dados passados entre o navegador e o servidor Web.

Por Programação Pular para comentários
Asp .Net - JavaScriptSerializer: JSON em C#

JavaScriptSerializer é uma classe responsável por serialização de outras classes para a linguagem que o javascript entende, JSON. Esta é a mesma utilizada internamente pela camada de comunicação assíncrona do Asp .Net para serializar e desserializar os dados passados entre o navegador e o servidor Web.

Para utilizar a classe é necessário importar o namespace System.Web.Script.Serialization.
A sintaxe para serializar um objeto é bem simples:

JavaScriptSerializer jss = new JavaScriptSerializer();
String res = jss.Serialize(Objeto); 

O método Serialize recebe qualquer tipo que herde de Object, essa função também pode ser usada assim:
JavaScriptSerializer jss = new JavaScriptSerializer();
StringBuilder sbRes = new StringBuilder();
jss.Serialize(Objeto, sbRes);

Mas será necessário importar o namespace System.Text. Vamos a um exemplo mais abrangente utilizando uma classe criada por nós como objeto.

[Pessoa.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public class Pessoa
{
    public string Nome { get; set; }
    public int Idade { get; set; }

    public Pessoa(string Nome, int Idade)
    {
        this.Nome = Nome;
        this.Idade = Idade;
    }
}

[Default.aspx.cs]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Text;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List lstPessoas = new List();
        lstPessoas.Add(new Pessoa("Leonardo", 20));
        lstPessoas.Add(new Pessoa("João", 8));
        lstPessoas.Add(new Pessoa("Luis", 15));
        lstPessoas.Add(new Pessoa("Jorge", 17));
        lstPessoas.Add(new Pessoa("Monica", 22));

        JavaScriptSerializer jss = new JavaScriptSerializer();
        StringBuilder sbRes = new StringBuilder();
        jss.Serialize(lstPessoas, sbRes);

        Response.Write(sbRes.ToString());
    }
}


No exemplo acima, criei uma Lista da minha classe, algo parecido com um Array e o resultado na tela foi esse:
Asp .Net - JavaScriptSerializer: JSON em C#


Agora precisamos fazer o javascript ler esse resultado, crie uma nova página e chame de ListarPessoas.aspx.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Text;

public partial class ListarPessoas : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        List lstPessoas = new List();
        lstPessoas.Add(new Pessoa("Leonardo", 20));
        lstPessoas.Add(new Pessoa("João", 8));
        lstPessoas.Add(new Pessoa("Luis", 15));
        lstPessoas.Add(new Pessoa("Jorge", 17));
        lstPessoas.Add(new Pessoa("Monica", 22));

        JavaScriptSerializer jss = new JavaScriptSerializer();
        StringBuilder sbRes = new StringBuilder();
        jss.Serialize(lstPessoas, sbRes);

        Response.Clear();
        Response.Write(sbRes.ToString());
        Response.End();
    }
}


Na página Default.aspx retire o código colocado no Page_Load e deixe o HTML assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>




    

    



    


Executando a página:
Asp .Net - JavaScriptSerializer: JSON em C#


Para mais informações: Visite este site

Até a próxima!

Compartilhe com seus amigos:
Comentários:
Carregar comentários