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.

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:

<a href="https://i1.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/06/11.jpg” data-rel="lightbox-image-0” data-rl_title=”” data-rl_caption=”” title="“>

 

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” %>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head runat=”server”>

<script type=”text/javascript”>

var request = null;

try {

request = new XMLHttpRequest();

} catch (trymicrosoft) {

try {

request = new ActiveXObject(“Msxml2.XMLHTTP”);

} catch (othermicrosoft) {

try {

request = new ActiveXObject(“Microsoft.XMLHTTP”);

} catch (failed) {

request = null;

}

}

}

function criarAjax() {

try {

request = new XMLHttpRequest();

} catch (trymicrosoft) {

try {

request = new ActiveXObject(“Msxml2.XMLHTTP”);

} catch (othermicrosoft) {

try {

request = new ActiveXObject(“Microsoft.XMLHTTP”);

} catch (failed) {

request = null;

}

}

}

if (request == null)

alert(“Não foi possível criar o objeto ajax!”);

}

function getDados() {

if (request == null) criarAjax();

if (request == null) return;

var url = “ListarPessoas.aspx”;

//para evitar problemas com o cache do navegador

url = url   “?cache=”   new Date().getTime();

request.open(“GET”, url, true);

//chame a função sem os parênteses

request.onreadystatechange = getDados_Response;

request.send(null);

}

function getDados_Response() {

if (request.readyState == 4) { //verifica o estado de prontidão

if (request.status == 200) {//verifica o status da requisição

//recupera os dados e os converte em um objeto

var jsonData = eval(‘(‘   request.responseText   ‘)’);

//o navegador trata a JSON com texto, portanto utilize o responseText

for (i = 0; i < jsonData.length; i  ) {

document.getElementById(“divRes”).innerHTML  = “Nome: ”

jsonData[i].Nome   “, Idade = ”   jsonData[i].Idade   ”

“;

}

}

}

}

<body onload=”getDados()”>

<form id=”form1″ runat=”server”>

<div id=”divRes”>

Executando a página:

<a href="https://i2.wp.com/www.leonardohofling.com/blog/wp-content/uploads/2015/06/21.jpg” data-rel="lightbox-image-1” data-rl_title=”” data-rl_caption=”” title="“>

Para mais informações: Visite este site

Até a próxima!