﻿var personas = [{
    "Nombre": "Santiago",
    "Edad": 25,
    "Trabajo": true,
    "Nacimiento": new Date(1995,05,21)
},
{
    "Nombre": "Pablo",
    "Edad": 19,
    "Trabajo": false,
    "Nacimiento": "2001-03-31"
},
{
    "Nombre": "Micaela",
    "Edad": 24,
    "Trabajo": true,
    "Nacimiento": "1996-07-13"
},
{
    "Nombre": "Marcelo",
    "Edad": 55,
    "Trabajo": true,
    "Nacimiento": new Date(1965,04,15)
},
{
    "Nombre": "Alejo",
    "Trabajo": false,
    "Nacimiento": "1993-07-08",
    "FuncionEdad": "function(){return 27;}"
}];

var texto = JSON.stringify(personas);


//-------------------------------------ARCHIVO HTML------------------------//


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script src="personas.js"></script>
    
    <script>
        var arreglo_personas;

        arreglo_personas = JSON.parse(texto, (clave, valor)=>{
            if(clave == "Nacimiento"){
                return new Date(valor);
            }
            else if(clave == "FuncionEdad"){
                return eval("(" + valor + ")");
            }
            else{
                return valor;
                /*
                si no aplicamos un else, con su return
                o un case default, los demas datos no se parsearan
                */
            }
            
        });

        for(i in arreglo_personas){
            console.log(arreglo_personas[i]);
            console.log("La persona cumple el dia " + arreglo_personas[i].Nacimiento.getDate());
        }
        
        //console.log("El cuarto usuario tiene " + arreglo_personas[4].FuncionEdad() + " años");
        
    </script>

</body>
</html>