Get values of a json, save them in a variable, json.parse ()?

3

Hello, I'm working on a module that graphs data with Chart.js , then charts.js works with json, like almost everyone in the world, so I'm getting another json 2 and NULL , with them generate variables that tell me how many there are. I'm not sure if my best option is to use a ...

  

Json.Parce ()

or something similar to accomplish my goal.

// Json de Chart.js

//aquí es donde quisiera almacenar los datos del json
var dt = [nums_1, num_2, num_null];
var lb = ["valor 1", "valor 2", "valor null"];
var stackedLine = new Chart(ctx, {
  type: 'line',
  data: {
    labels: lb,
    datasets: [{
      label: 'Datos',
      data: dt,
      backgroundColor: [
        'rgba(54, 162, 235, 0.4)'
      ],
      borderWidth: 1
    }]
  },
  options: {
    scales: {
      yAxes: [{
        stacked: true
      }]
    }
  }
});
{
	"DatosEnvio": {},
	"DatosEnvioJson": {
		"Table1": {
			"campos": ["idCatSexo", "idSysCPEmpleados"],
			"datos": [{
					"idCatSexo": 2,
					"idSysCPEmpleados": 1
				}, {
					"idCatSexo": 2,
					"idSysCPEmpleados": 1
				}, dCatSexo ":1,"
				idSysCPEmpleados ":52},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":53},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":54},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":55},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":56},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":57},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":58},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":59},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":60},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":61},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":62},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":63},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":64},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":65},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":66},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":67},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":68},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":69},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":70},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":71},{"
				idCatSexo ":1,"
				idSysCPEmpleados ":72},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":73},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":74},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":75},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":76},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":2027},{"
				idCatSexo ":2,"
				idSysCPEmpleados ":2028}]},
				"Table2": {
					"campos": ["bandera", "mensaje"],
					"datos": [{
						"bandera": 0,
						"mensaje": "Se ingresaron los datos correctamente"
					}]
				}
			},
			"tablas": null,
			"bandera": "0",
			"mensaje": "--"
		}
    
asked by E.Rawrdríguez.Ophanim 09.04.2018 в 18:33
source

1 answer

2

You can obtain the values of the elements of your json with the method Object. values () . This is assuming that your json always has the same form and that the data that interests you always comes in the same json position. In this way, you can access the value of the item in position 1 ( data ), item 0 ( Table1 ), item 1 ( DatosEnvioJson ) of your json received. For example:

var cantidad1 = 0;
var cantidad2 = 0;
var cantidadNull = 0;

$.getJSON('jsn.json', function(myJson) {
            var datos = (Object.values(Object.values(Object.values(myJson)[1])[0])[1]);
            for (var i = 0; i < datos.length; i++) {

                if (Object.values(datos[i])[0] == 1) {
                    cantidad1++;
                } else if (Object.values(datos[i])[0] == 2) {
                    cantidad2++;
                } else {
                    cantidadNull++;
                }
            }
            alert("Cantidad de 1'os: " + cantidad1 + "\nCantidad 2'os: " + cantidad2 + "\nCantidad null's: " + cantidadNull);
        });

'json.json' is the json received. After this, you can have:

var dt = [cantidad1, cantidad2, cantidadNull];

var jsonRecibido = {
  "DatosEnvio": {},
  "DatosEnvioJson": {
    "Table1": {
      "campos": [
        "idCatSexo",
        "idSysCPEmpleados"
      ],
      "datos": [
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 1
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 1
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 52
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 53
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 54
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 55
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 56
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 57
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 58
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 59
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 60
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 61
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 62
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 63
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 64
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 65
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 66
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 67
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 68
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 69
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 70
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 71
        },
        {
          "idCatSexo": 1,
          "idSysCPEmpleados": 72
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 73
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 74
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 75
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 76
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 2027
        },
        {
          "idCatSexo": 2,
          "idSysCPEmpleados": 2028
        }
      ]
    },
    "Table2": {
      "campos": [
        "bandera",
        "mensaje"
      ],
      "datos": [
        {
          "bandera": 0,
          "mensaje": "Se ingresaron los datos correctamente"
        }
      ]
    }
  },
  "tablas": null,
  "bandera": "0",
  "mensaje": "--"
};

var cantidad1 = 0;
var cantidad2 = 0;
var cantidadNull = 0;

var datos = (Object.values(Object.values(Object.values(jsonRecibido)[1])[0])[1]);
			for (var i = 0; i < datos.length; i++) {

				if (Object.values(datos[i])[0] == 1) {
					cantidad1++;
				} else if (Object.values(datos[i])[0] == 2) {
					cantidad2++;
				} else {
					cantidadNull++;
				}
			}
			console.log("Cantidad de 1'os: " + cantidad1 + "\nCantidad 2'os: " + cantidad2 + "\nCantidad null's: " + cantidadNull);
		
    
answered by 09.04.2018 / 19:40
source